#include<stdio.h> #include<math.h> int main() { //输入一个数字 long long n=0; long long n1=0; scanf("%lld",&n); int single=0; int count=0; int mid=0; //取出每一位 /10 %10 --> n<9 while(n>9) { single=n%10;//取位 n= n/10;//缩小 if(single % 2==0) single=0; else single =1; count++; //合成新的数字 mid=mid+single*pow(10,count-1); } if(n%2==0) n=0; else n=1; n1=n*pow(10,count)+mid; printf("%lld\n",n1); return 0; }
新手用递归用不好在222221这组判定时,输出000001。很苦恼,递归没学扎实,果断放弃用递归思路去解题。面向结果化的编程很费时间。哈哈,还得加油!!