LQ0156 立方变自身枚举
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0156 立方变自身枚举相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2015初赛 Java B组B题
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
...
请你计算包括 1,8,171,8,17 在内,符合这个性质的正整数一共有多少个?
问题分析
这个问题用枚举法来做,似乎需要做无限的计算,但是对于n3,n一般是小于或等于立方的各位之和,按这个条件搜索即可。需要注意这个计算比较费时,计算的结果为6。
填空题,所以程序中只需要一句“printf(“6\\n”);”就可以了。
AC的C语言程序如下:
/* LQ0156 立方变自身 */
#include <stdio.h>
//#define DEBUG
int main()
#ifdef DEBUG
int cnt = 0;
for (int i = 1; ;i++)
int t = i * i * i;
int sum = 0;
while (t)
sum += t % 10, t /= 10;
if (sum == i) cnt++;
if (sum < t) break;
printf("%d\\n", cnt);
#else
printf("6\\n");
#endif
return 0;
以上是关于LQ0156 立方变自身枚举的主要内容,如果未能解决你的问题,请参考以下文章