最终为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转化成int
31             if(k%2)
32             {
33                 oddCount++;
34             }
35             else
36             {
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             else
31                 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 }
时间: 2024-10-23 07:01:11

最终为123的相关文章

【转】Delphi中字符串的处理

原文来自: [100脚本网 http://www.pc100.net/ ] 一.几个字符串处理的基本函数   a)子串定位——获取子串在原字串中的位置(不是数组下标,而是第几个) 1 function pos('子串','原字符串'):integer 说明:当有中文时,最好这样用:pos('子串',wideString('原字符串')),这样可以避免前一个汉字的后半部分和后一个汉字的前半部分 也恰好能构成一个汉字时出现问题.   b)子串截取——拷贝出原字符串中的部分子串(Index不是数组下标

闭包在python中的应用,translate和maketrans方法详解

python对字符串的处理是比较高效的,方法很多.maketrans和translate两个方法被应用的很多,但是具体怎么用常常想不起来. 让我们先回顾下这两个方法吧: 1.s.translate(table,str) 对字符串s移除str包含的字符,剩下的字符串按照table里的字符映射关系替换.table可以理解为转换表,比较'a' -> 'A', 'b'->'B'. 2.tabel = string.maketrans('s1', 's2') s1 和 s2 的长度必须一致,maketr

js学习日记-隐式转换相关的坑及知识

隐式转换比较是js中绕不过去的坎,就算有几年经验的工程师也很有可能对这块知识不够熟悉.就算你知道使用===比较从而避免踩坑,但是团队其它成员不一定知道有这样或那样的坑,有后端语言经验的人常常会形成一个思维误区:"JS这门语言很简单,看看语法再找几个例子就能操作DOM,编写特效了".随着react.vue.html5等技术在项目中大规模使用,越来越多的项目中使用了大量的JS,甚至整个项目都用JS来写(例如基于webapi的SPA管理后台.微信小程序.微信H5应用,Hybrid app),

python实战演练(六)员工信息查询系统

一 实现功能 (1).工信息表程序,实现增删改查操作: (2).可进行模糊查询,语法至少支持下面3种:        select name,age from staff_table where age > 22       select * from staff_table where dept = "IT"       select * from staff_table where enroll_date like "2013"(3).查到的信息,打印后,

2015-05-29股票资料

代码 名称 股价 总市值 所属行业 6日涨幅% 6日换手% 总股本 601628 中国人寿 35.26 9966亿 保险 -3.85 2.77 283亿 601318 中国平安 85.44 7809亿 保险 -1.34 18.87 91.4亿 601601 中国太保 32.23 2921亿 保险 -3.85 10.88 90.6亿 601336 新华保险 58.81 1835亿 保险 -4.53 14.57 31.2亿 600660 福耀玻璃 16.43 412亿 玻璃陶瓷 1.55 23.92

Searching Quickly UVA 123

说说:感觉这题目是做得越来越繁琐了.这道题基本上把接下来课设要做的英语词典的框架给做出来了.好像本题的解法就是所谓的倒排索引.先给你一系列的句子,其实就是一系列的词啦.当然里面要把一些词去掉.然后把剩下的每个词都做成索引.最后按字典序把所有词所在的句子都输出就可以了.我的做法是定义了一个结构index包含关键词和一个指针,该指针指向一个链表,链表中的每个节点包含了该关键词所在的句子的位置,以及该关键词在句子中的位置.然后读入词,若不是要忽略的词就判断该词是否已经在关键词表中,在则添加到相应关键词

nyoj 123 士兵杀敌(四)【树状数组】+【插线问点】

树状数组有两种情况:插点问线和插线问点.这道题是插线问点. 因为树状数组最简单的作用是计算1~x的和,所以给出(a, b, c),表示(a,b)区间增加c, 那我们只需要在a点原来的基础上增加c,然后在b点原来的基础上更新-c,这样我们算最终结果的时候在(a, b)之间的就是增加了c,在区间之外的就是没有增加. 代码: #include <stdio.h> #include <string.h> #define M 1000005 int c[M], m; int lowbit(i

(转) exp1-3://一次有趣的XSS漏洞挖掘分析(3)最终篇

这真是最后一次了.真的再不逗这个程序员了.和预期一样,勤奋的程序员今天又更新程序了.因为前面写的payload都有一个致命的弱点,就是document.write()会完全破坏DOM结构.而且再“完事儿”之后,还不会跳转到本应该跳转的页面.所以还是那么容易就被发现了.(也包括我犯贱老找别人网站做测试)反思 昨天在去便利店买烟的时候,发现了自己犯的一个错误.就当是纠正一下前面的2篇吧.当我们的JS是在script标签内的时候,像这样: <script>document.write(123)<

键盘录入数字,输出汉字数字,如键盘录入123,输出一二三。

import java.util.Scanner; public class Test3 { /** *  从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三: * 键盘输入3103,打印出三一零三. * @param args */ public static void main(String[] args) { //键盘录入数据: Scanner sc=new Scanner(System.in); // 引导用户: System.out.println("请输