首页 > 代码库 > 最终为123
最终为123
1. 设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数,将答案按 “偶-奇-总” 的位序,排出得到新数。重复进行,最后会得到 123。
解法一:
1 #include<iostream> 2 #include<string.h> 3 #include<cstdio> 4 using namespace std; 5 int main() 6 { 7 char num[100]; 8 for(int i=0; i<100; i++) //初始化数组 9 {10 num[i] = ‘a‘;11 }12 int count = 0;13 int oddCount = 0;14 int evenCount = 0;15 int totalNum = 0;16 printf("请输入数字:");17 char input;18 while((input =getchar())!=‘ ‘&&(input!=‘\n‘))19 {20 num[count] = input;21 count++;22 23 }24 string LinkStr = "";//最后拼接成的字符串25 int step = 0; //总共步数26 while(LinkStr!="123")27 {28 for(int j=0; j<100 && num[j]!=‘a‘; j++)29 {30 int k = num[j]-‘0‘; //将char转化成int31 if(k%2)32 {33 oddCount++;34 }35 else36 {37 evenCount++;38 }39 }40 totalNum = oddCount+evenCount;41 42 /*下面是将totalcount,oddCount和evenCount组合成 “偶-奇-总”的形式*/43 44 char t1[100],t2[100],t3[100];45 string temp1,temp2,temp3;46 sprintf(t1,"%d",evenCount);47 sprintf(t2,"%d",oddCount);48 sprintf(t3,"%d",totalNum);49 temp1 = t1;50 temp2 = t2;51 temp3 = t3;52 string temp = temp1+temp2;53 LinkStr = temp+temp3;54 step++;55 cout<<"Step"<<step<<":";56 cout<<"now the number is:"<<LinkStr<<endl;57 58 /*重置三个计数变量*/59 totalNum = 0;60 oddCount = 0;61 evenCount = 0;62 63 /*更新num数组*/64 for(int i=0; i<20; i++)65 {66 num[i] = ‘a‘;67 }68 int LinkStrSize = LinkStr.length();69 for(int i = 0; i<LinkStrSize; i++)70 {71 num[i] = LinkStr[i];72 }73 }74 printf("输出结果能为123");75 }
解法二:
1 #include <iostream> 2 using namespace std; 3 4 int media(int num) 5 { 6 int m = 1; 7 while(num) 8 { 9 num /= 10;10 m *= 10;11 }12 13 return m;14 }15 16 int main()17 {18 int numb, odd = 0, even = 0, lastNumb = 0;19 cout<<"please input the number:";20 cin >> numb;21 while(numb != lastNumb || numb != 123)22 {23 lastNumb = numb;24 odd = 0;25 even = 0;26 while(numb)27 {28 if((numb % 10) %2)29 odd++;30 else31 even++;32 numb /= 10;33 }34 numb = odd + even;35 numb = media(numb) * odd + numb;36 numb = media(numb) * even + numb;37 cout << "now number is:" << numb << endl;38 }39 cout<< numb;40 return 0;41 }
最终为123
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。