C语言精选练习题:(10)字幂数

每日一言

信心这个东西,什么时候都像个高楼大厦,但是里面会长白蚁。 --沉默的大多数


题目

打印1~100000之间的所有的字幂数,中间用空格分隔
(字幂数是指一个数的位数的n次方之和等于这个数本身)
如:370= 3 ^ 3 + 7 ^ 3 + 0 ^ 3;

解法思路

  1. 用for循环递归1~100000
  2. 计算数字的位数n
  3. 计算该数的位数的n次方之和sum
  4. 判断sum与该数是否相等
  5. 如果相等,打印。

代码如下

#include
#include
int main()
{
	int tmp = 0;
	int n = 1;
	int i = 0;
	int sum = 0;
	for (i = 1; i <= 100000; i++)
	{
		n = 1;
		sum = 0;
		tmp = i;
		while (tmp/10)
		{
			n++;//位数
			tmp /= 10;
		}
		tmp = i;
		while (tmp)
		{
			sum += pow(tmp % 10, n);
			tmp /= 10;
		}
		if (sum == i)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

运行结果
C语言精选练习题:(10)字幂数_第1张图片


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
想成为大佬那就保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


你可能感兴趣的:(C语言练习题,c语言,学习,笔记)