TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
 
- 积分
- 2345
|
题目
解决代码及点评[cpp] view plaincopy![]() ![]()
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/*
- 60. 回文数指左右数字对称的数,如121,2112都是回文数。回文数猜想:取一任意十进制数,将其倒过来,并将这两个数相加,
- 然后把这个相加的和倒过来再与原数相加..., 重复此过程可得到一个回文数。如取68为任意数,经三步相加可得回文数:
- 6 8
- + 8 6 测试数据:
- ───── ① 68
- 1 5 4 ② 5
- 4 5 1 ③ 876
- ───── ④ 12501
- 6 0 5
- 5 0 6
- ─────
- 1 1 1 1
- 注意:
- 1) 上机时不要随便自选数据,因为对有的数经几十万次以上相加还未得到回文数。
- 2) 由于一位、两位数十分简单,故仅从3位数开始才判它是否为回文数。即5,55,66这样的数在此处不把它当作回文数。
- */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int f500601(int a)//逆置函数
- {
- int b=0;//记录逆置后的数
-
- while (a>0)
- { b=b*10+a%10;
- a=a/10;
- }
- return b;
- }
-
- int f500602(int a)//判断是否是回文数,如若是则相等返回1,不等返回0
- {
- return a == f500601(a);
- }
-
- int f500603(int a )
- {
- if (a<100)
- {
- return 0;
- }
- else return 1;
- }
-
-
- void main()
- {
- int a;
- scanf_s("%d",&a);
- int i=0;//记录相加的次数
-
- while(f500602(a)<1 || f500603(a)<1)
- {
-
- a=a+f500601(a);
- printf("%d,%d+%d=%d\n",++i,a,f500601(a),a+f500601(a));
- }
-
-
- system("pause");
- }
- </pre><br><br></pre><br></pre></pre></pre>
|
|