知识基础:


for(表达式1;表达式2;表达式3){若干语句}//for循环语句及其格式


思路:水仙花数为三位数,所以循环从100开始,到999结束,i为int型变量,所以i/100的值也是一个int型变量(整数)(注:C语言的取整不是四舍五入,是直接舍去小数),i/100就是百位上的数,i和100求余就是剩下的两位数,i%100之后再除以10同理会得到十位上的数,原数字再和10求余就是个位上的数


答案

#include<stdio.h>
int main(){
	int i;
	for(i=100;i<=999;i++){
		if(i==(i/100)*(i/100)*(i/100)+((i%100)/10)*((i%100)/10)*((i%100)/10)+(i%10)*(i%10)*(i%10))
			printf("%d\n",i);
	}
	return 0;
}

注:程序结束return 0;不可省。

点赞(4)
 

0.0分

69 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 44 条评论

向志权 1年前 回复TA
#include<stdio.h>
int main()
{
	int s;
	int i,j,k;
	int x[9][10][10];
	for(i=1;i<=9;i++)
	{
		for(j=0;j<=9;j++)
		{
			for(k=0;k<=9;k++)
			{
				x[i][j][k]=i*100+j*10+k;
				if(x[i][j][k]==i*i*i+j*j*j+k*k*k)
					{
						s=x[i][j][k];
						printf("%d\n",s);
					}
			}	
		}	
	}
	return 0;
}
huadad 1年前 回复TA
@alex #include<stdio.h> int main() {     int a, b, c; for (int i=100;i<1000;i++) { 	a = i /100; 	b = i % 100/10; 	c = i % 10; 	if (i !=a*a*a+b*b*b+c*c*c) 	{ 		continue; 	} 	printf("%d\n", i); }         return 0; }
黄小橘 1年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
    int i;
    char b[4];
    for(i=100;(i>=100) && (i<=999);i++)
    {
    	sprintf(b,"%d",i);
    	if(i==(b[0]-'0')*(b[0]-'0')*(b[0]-'0') + (b[1]-'0')*(b[1]-'0')*(b[1]-'0') + (b[2]-'0')*(b[2]-'0')*(b[2]-'0')) printf("%d ",i);
    }
    return 0;
}
alex 1年前 回复TA
int main()
{
	int i,a,b,c,multi;
	for ( i = 100; i < 1000; i++)
	{
		a = i % 10;
		b = (i / 10) % 10;
		c = i / 100;
		multi = a * a * a + b * b * b + c * c * c;
		if (multi == i)
		{
			printf("%d ", i);
		}
	}
	return 0;
}
荆棘鸟的呼唤 1年前 回复TA
#include<stdio.h>
int main()
{
	int a,b,c,m;
	for(m=100;m<1000;m++)
	{
		a=m/100;
		b=m%100/10;
		c=m%10;
		if(m==a*a*a+b*b*b+c*c*c) 	printf("%d\n",m);
	}
	return 0;
}一起加油
jvhhv 1年前 回复TA
#include<stdio.h>
#include<math.h>
int main()
{
    int num,i,sum,sum1,sum2;
    
    for(num=100;num<=999;num++)
    {
    sum=num%10;
    sum1=num/10%10;
    sum2=num/100;
    if(pow(sum,3)+pow(sum1,3)+pow(sum2,3)==num)
    {
        printf("%d\n",num);
    }
    }
    return 0;
}
祀如西沉 1年前 回复TA
#include <stdio.h>
 
int main() 
{
for(int a=1;a<10;a++)
{for(int b=0;b<10;b++)
{for(int c=0;c<10;c++)
{
	if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)
	printf("%d%d%d\n",a,b,c);
}
}
}
   return 0; 
}
keheia 1年前 回复TA
#include <stdio.h>
#include <string.h>
#include <math.h>
int main(){
	void pd(int x);
	int i=100;
	for(i;i<1000;i++){
		pd(i);
	}
	return 0;
}
void pd(int x){
	int i=0,y=0;
	int z=x;
	while(x!=0){
		y=y+pow(x%10,3);
		x=x/10;
	}
	if(z==y)
		printf("%d\n",z);
}
keheia 1年前 回复TA
@keheia #include <stdio.h> #include <string.h> #include <math.h> int main(){ 	void pd(int x); 	int i=100; 	for(i;i<1000;i++){ 		pd(i); 	} 	return 0; } void pd(int x){ 	int i=0,y=0; 	int z=x; 	while(x!=0){ 		y=y+pow(x%10,3); 		x=x/10; 	} 	if(z==y) 		printf("%d
",z); }
keheia 1年前 回复TA
#include <stdio.h>
#include <string.h>
#include <math.h>
int main(){
	void pd(int x);
	int i=100;
	for(i;i<1000;i++){

		//printf("%d\n",i);
		pd(i);
		//printf("%d\n",i);
	}
	return 0;
}
void pd(int x){
	int i=0,y=0;
	
	//scanf("%d",&x);
	int z=x;
	while(x!=0){
		if(1){
			y=y+pow(x%10,3);
			x=x/10;
		}
	}
	
	if(z==y)
		printf("%d\n",z);
	

}