1721. Gray code[Special judge]
1721. Gray code[Special judge]
|
|||||||||
|
|||||||||
Description
Gray code is an interesting code sequence and has many applications in computer science. No matter you have known it before or not, here are some introductions about its features:
(1)Gray code has 2 n unique elements; (2)Each element contains n digits of 0 or 1; (3)Each pair of adjacent elements has exactly one different digit. For example, when n=2, one of the gray code sequences is: 00,01,11,10. Now, the task is quite simple, given a positive integer n, generate the corresponding Gray code sequence.
Input
Input may contain multiple test cases. Each test case consists of one positive integer n(n<=16), Input is terminated by a case with n=0, which should not be processed.
Output
For each test case, output the corresponding Gray code sequence, one element per line. There may be multiple answers, any of them will be accepted. Please output a blank line after each test case.
Sample Input
1 2 0 Sample Output
0 1 00 01 11 10 // Problem#: 1721 // Submission#: 2001703 // The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License // URI: http://creativecommons.org/licenses/by-nc-sa/3.0/ // All Copyright reserved by Informatic Lab of Sun Yat-sen University #include<iostream> #include<cmath> #include<stdio.h> #include<string> using namespace std; void change(char *p,int n){ p[n-1]+=1; int i=0; while(p[n-1-i]>='2'){ p[n-1-i]-=2; p[n-2-i]+=1; i++; } } void haha(char *p,char *q,int n){ int i; q[0]=p[0]; for(i=1;i<n;i++){ q[i]=(p[i-1]-'0')^(p[i]-'0')+'0'; } } int main(){ int n; while(cin>>n&&n!=0){ char *p=new char[n+1]; char *q=new char[n+1]; int i; p[n]='\0'; q[n]='\0'; for(i=0;i<n;i++){ p[i]='0'; q[i]='0'; } for(i=0;i<pow(2,n);i++){ int x; printf("%s\n",q); change(p,n); haha(p,q,n); } printf("\n"); } return 0; } 用printf输出,而且必须转化成 题目要求的字符串,而不是简单的加一。 |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步