递归输出整数位:
1 void print(int n) 2 { 3 4 //if(n<10) cout<<n<<" "; 5 // print(n/10); 6 if(n>10) print(n/10); 7 cout<<n%10<<" "; 8 9 }
逆序输出:
void print(int n) { //if(n<10) cout<<n<<" "; // print(n/10); cout<<n%10<<" "; if(n>10) print(n/10); }
反转:
1 int reverseInt(int n) 2 { 3 4 int sum=0; 5 while(n!=0) 6 { 7 8 sum=sum*10+n%10; 9 n/=10; 10 } 11 }
DecToBit算法:对2取余,得到二进制末尾的1或0
1 vector<int> decTobit(int n)//十进制转换为二制,对2取余,得到1或者0,是对应二进制数的尾末位 2 { vector<int> res; 3 if(n==0) {res.push_back(0);return res;} 4 5 while(n!=0)//进制之间的互相转换,如果10进制转换为16进制,也是对16取余 6 { 7 8 int a=n%2;res.push_back(a);// 9 n/=2; 10 } 11 }
调整语句可以逆序输出二进制:(对比10进制的位数输出),递归终止条件是n为1或0,然后上一层再输出
void printDecToBit(int n)//递归,正序输出 { if(n>1) printDecToBit(n/2); cout<<n%2; //如果不取余,会输出连续的位数 }