MrSix


私信TA

用户名:1658530280

访问量:154306

签 名:

等  级
排  名 16
经  验 21071
参赛次数 0
文章发表 23
年  龄 0
在职情况 学生
学  校 大连交通大学
专  业

  自我简介:

知识基础:


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;不可省。

 

0.0分

93 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include<stdio.h>
#include<math.h>
int main()
{
   for(int i=100;i<=999;i++)
   {
   	if(i==pow((i/100),3)+pow(((i/10)%10),3)+pow((i%10),3))
   	printf("%d\n",i);
   }
	return 0;
 }
2021-10-06 12:38:56
我用了4个for,,,可能是最笨的方法了
#include<stdio.h>

int main()
{
    int i, j, k, num;
    for(num=100; num<1000; num++)
    {
        for(i=1;i<=9;i++)
        {
            for(j=0; j<=9; j++)
            {
                for(k=0; k<=9; k++)
                {
                    if(num==i*i*i+j*j*j+k*k*k&&num==i*100+j*10+k)
                        printf("%d\n",num);
                }
            }

        }
    }
    return 0;
}
2020-12-16 14:36:28
#include <stdio.h>
void main()
{
    int a,j,m,i,t;
    for(a=100;a<=999;a++)
    {
		t=a;
		m=0;
        for(i=1;i<=3;i++)
        {
			j=t%10;
			m=m+j*j*j;
			t=t/10;
        }
		if(a==m)
			printf("%d是一个水仙花数\n",a);
    }
}
2020-10-14 18:33:51
#include <stdio.h>

int main()
{
	int x;
	int a,b,c;
	
	for(x=100;x<1000;x++){
		a = x/100;
		b = x/10 - a*10;
		c = x%10;
		
		if( a*a*a+b*b*b+c*c*c == x ){
			printf("%d ",x);
		}
	}
	
	return 0;
}
2020-07-08 14:24:39
#include <stdio.h> 	
int main()
{
	int a=0,n,i=1,b,maxsize=10000,s=0,t=1;
	int x[maxsize];
	while (t++)
	{	
	b=t;
	n=t;
		while (i<=n)
		{	
		x[a]=n%10;
		s=s+(x[a]*x[a]*x[a]);
		n=(n-x[a])/10;
		a++;
		}
		
	if(s==b){
		printf("%d\n",b);	
		}
	s=0;a=0;	
	
	}	
	return 0;
}

为啥我程序这样写也只能输出1000以内的四个水仙数啊?更大的为什么输出不了呢
2020-05-14 15:37:41
#include <stdio.h>
int main ()
{
	int i,a,b,c,t;
	for(i = 100; i<1000; ++i)
	{
		a=i/100;
		b=i%100/10;
		c=i%10;
		if((a*a*a)+(b*b*b)+(c*c*c)==i)
			printf("%d\n", i);
	}
	return 0;
}
这道题很舒服
2020-05-11 20:30:24
为啥我这 return 0省略了也是正确的
2020-03-07 08:25:24
这道题玩起来就很开心
可以这样
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b,c,d;
	for(int i=100;i<=999;i++)
	{
		a=i/100;
		b=i%100/10;
		c=i%10;
		d=(a*a*a)+(b*b*b)+(c*c*c);
		if(i==d)
		 cout<<i<<endl;
	}
	return 0;
 } 
也可以这样
 #include<bits/stdc++.h>
using namespace std;
int main()
{
	cout<<153<<endl;
	cout<<370<<endl;
	cout<<371<<endl;
	cout<<407<<endl;
	return 0;
 }
再不行你就这样?
#include<bits/stdc++.h>
using namespace std;
int main()
{
	for(int i=100;i<=999;i++)
	{
		if(i==(pow(i/100,3)+pow(i%100/10,3)+pow(i%10,3)))
		 cout<<i<<endl;
	}
	return 0;
 }
2020-03-03 01:14:18