第1个回答 2008-05-04
这是水仙花数的求解:所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
#include "stdio.h"
bool is(int number)
{ int i,j,k;
i=number%10;//所求数的个位
j=(number/10)%10;//所求数的十位
k=number/100;//所求数的百位
if(i*i*i+j*j*j+k*k*k==number)
return number;
}
void main()
{
int m,n,i;
/*输入m>=1,n<=1000*/
printf("Input the nunber:m=");
scanf("%d\n",m);
printf("Input the nunber:n=");
scanf("%d\n",n);
printf("shuixianhuashu is :\n");
for(i=m;i<=n;i++)
printf("%d\n",bool is(i));
}
第2个回答 2008-05-02
# include <stdio.h>
# include <math.h>
#include <iostream>
using namespace std;
bool is (int number)
{
int a0=0,a1=0,a2=0;
a2=number/100;
a1=(number%100)/10;
a0=number%10;
int newNum=0;
newNum=pow(a0,3)+pow(a1,3)+pow(a2,3);
if (number==newNum)
{
return true;
}
else
{
return false;
}
}
int main()
{
bool flag=false;
int m,n;
cout<<"请输入输入两个正整数m和n,(m>=1,n<=1000):"<<endl;
cin>>m>>n;
for(int i = m;i <= n;i++)
{
if(is(i))
{
flag=true;
cout << i <<"符合条件"<<endl;
}
}
if(flag==false)
cout<<m<<"与"<<n<<"之间没有这样的数"<<endl;
return 0;
}
当然要是向更完善的话应该在m,n输入的位置加上是否满足m>=1,n<=1000
的判断~~本回答被提问者采纳
第3个回答 2008-05-02
下面的程序肯定有这啊那啊的语法错误,很久没看C编程了,很多东西都不会了,但是算法思路应该能实现你的要求,那个1000没考虑,没心思完全的编程了
bool is(int number)
{int a,b,c,d;
a=number/100;b=number/10%10;c=number%100;d=a*a*a+b*b*b+c*c*c;
if(number==d)return(number);
}
main()
{int m,n,number;
int bool is();
scanf("%d",&m);
scanf("%d",&n);
for(number=m;number<=n;number++)
printf("%d",bool is(number));
}
第4个回答 2008-05-02
//---------------------------------------------------------------------------
#include <stdio.h>
int is(int number)
{
long s=0;
int g,tm=number;
while (number)
{
g=number%10;
s+=g*g*g;
number/=10;
}
return tm==s;
}
int main(void)
{
int m,n,i;
scanf("%d%d",&m,&n);
for (i=m<n?m:n; i<=(m<n?n:m); i++) {
if (is(i)) {
printf("%d\n",i);
}
}
return 0;
}
//---------------------------------------------------------------------------
第5个回答 2019-04-07
你好,我可以告诉你
编程
不难,但也不简单
最重要的是坚持,有耐心,我学了半年,做过QQ项目
,网站,你有不懂得可以问我