基础练习7(特殊的数字)
问题描述思路:
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
通过for循环,100~999,满足三位数的条件,满足从小到大的顺序输出。通过整除运算 / 和取余运算 % 将各位数字存放在不同变量里,再通过if语句判断,符合条件的输出。注意求立方不可以a^3,可以直接a * a * a,或者在开头加一句#include
但这个方法不具有广泛性,只针对这道题,想了解更多的可以看后面的补充内容
代码:
#include
#include
int main()
{
int a,b,c;
int i;
for(i=100;
i<1000;
i++)//满足三位数的条件,满足从小到大的顺序输出
{//遍历每个三位数
a=i%10;
//求得个位数
b=i/10%10;
//求得十位数
c=i/100%10;
//求得百位数
if((pow(a,3)+pow(b,3)+pow(c,3))==i)
printf("%d\n",i);
}
return 0;
}
文章图片
评测结果.png
补充
当题目给定的不是三位数,而是七位数、八位数时,再用a、b、c……的变量去存放各位数字是不理想的,故我们可以通过while循环来实现,用数组来存放各位数字,同时用变量sum来存放立方和。
代码:
#include
#include
int main()
{
int i,num;
int s[10];
for(i=100;
i<1000;
i++)//满足三位数的条件,满足从小到大的顺序输出
{//遍历每个三位数
num = i;
int m = 0;
int sum = 0;
while(num!=0)
{
s[m]=num%10;
num/=10;
sum+=pow(s[m++],3);
}
if(sum==i)
printf("%d\n",i);
}
return 0;
}
文章图片
评测结果.png
【基础练习7(特殊的数字)】运行结果:
文章图片
运行结果.png
推荐阅读
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- Python基础|Python基础 - 练习1
- 呼吸练习心得
- Java|Java基础——数组
- 特殊的家庭作业。
- Java基础-高级特性-枚举实现状态机
- 20190707一个特殊的决定
- 营养基础学20180331(课间随笔)??
- iOS面试题--基础
- HTML基础--基本概念--跟着李南江学编程