69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <math.h>
void main()
{
printf("hw 5.8\n");
//temp=pow(bai,3)+pow(shi,3)+pow(ge,3); //这里temp bai shi ge 变量都还没定义
for(double bai=1,shi=0,ge=0;(100*bai+10*shi+ge)<=999;bai++)//这里虽然定义了,数据类型不对呢,int型就可以了
{ //百位数的循环
//int temp=pow(bai,3)+pow(shi,3)+pow(ge,3);//这句放在这里,shi ge 位数变化捕捉不到
for(shi=0,ge=0;shi<=9;shi++)//十位数的循环
{
for(ge=0;ge<=9;ge++) //个位数的循环
{
int temp=pow(bai,3)+pow(shi,3)+pow(ge,3);
if((100*bai+10*shi+ge)==temp)
{
//printf("%d%d%d\n",bai,shi,ge); 既然前面定义的是double型,输出不能用%d
printf("%.0f%.0f%.0f\n",bai,shi,ge);
}
//else printf("条件不满足 %d%d%d%d",bai,shi,ge,temp);
//这句是只要不满足就输出一条,题目没要求呢,而且输出用 %d 也不对
}
ge=0;
}
shi=0,ge=0;
}
}
#include <stdio.h>
int main(void)
{
int sum,temp,i,n;
for (i = 100;i < 1000; ++i){
temp= i;
sum = 0;
while(temp){ //temp到0时跳出循环
n = temp%10;//每次取得一位数值,如153,分别取3 5 1
sum += n*n*n;//每位数值的立方和
temp/= 10;
}
if (i == sum){ //如立方和sum 与原数 i相同,即为水仙花数
printf("%d\n",i);
}
}
return 0;
}
#include <stdio.h>
#include <math.h>
//void main()
int main(void)
{
printf("hw 5.8\n");
int temp;
//temp = pow(bai,3)+pow(shi,3)+pow(ge,3);
//for(double bai=1,shi=0,ge=0; (100*bai + 10 * shi+ge)<=999;bai++) //百位数的循环
for(int bai=1,shi=0,ge=0; (100*bai + 10 * shi + ge) <= 999; bai++) //百位数的循环
{
//int temp=pow(bai,3)+pow(shi,3)+pow(ge,3);
for(shi=0,ge=0;shi<=9;shi++) //十位数的循环
{
for(ge = 0; ge<=9;ge++) //个位数的循环
{
temp=pow(bai,3)+pow(shi,3)+pow(ge,3);
if((100*bai+10*shi+ge)==temp)
printf("%d%d%d\n",bai,shi,ge);
//else
// printf("条件不满足 %d %d%d%d",bai,shi,ge,temp);
}
ge=0;
}
shi=0,ge=0;
}
return 0;
}