输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。

作者&投稿:松勉 (若有异议请与网页底部的电邮联系)
输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于于它本身的数。~

没有仔细看,但是有一处有问题,你试试看。
if(i=is(i))
为什么碰到一个i 满足要求时,要将i 重新赋值为1呢?!
改为: if ( is(i))

#include
int fun(int n)
{
int i,j,k,flag=0;
i=n/100;
j=n/10%10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
flag=1;
return flag;
}
main()
{
int n;
for(n=100;n<=999;n++)
{
if(fun(n)==1)
printf("%d",n);
}
}

求谢谢

int is(int number)//定义一个返回值为int型的函数,命名为is,并定义一个int型参数number
{
int temp,digit,sum,res;
temp=number;//将传递进来的参数number赋值给temp
sum=0;//初始化和为0
while(number!=0){//如果传递进来的数字不为0,执行while循环
digit=number%10;//获取个位上的数字
sum=sum+pow(digit,3);//将和加上上行代码所获得的个位数字的立方和
number=number/10;//将数字除以10,继续while循环
}
if(sum==temp)//根据sum的结果判断是否为水仙花树
res=1;
else
res=0;
return res;
}
这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)

我调试了一下,没有问题啊,你把我这个复制过去再试试。

#include <stdio.h>
int main(void)
{
int i, digit, m, n, number, c,sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
for(i=m;i<=n;i++){
digit=i%10;
number=(i/10)%10;
c=i/100;
if(i==digit*digit*digit+number*number*number+c*c*c)

printf("%d\n", i);}
}
}

int is(int number)//定义一个返回值为int型的函数,命名为is,并定义一个int型参数number
{
int temp,digit,sum,res;
temp=number;//将传递进来的参数number赋值给temp
sum=0;//初始化和为0
while(number!=0){//如果传递进来的数字不为0,执行while循环
digit=number%10;//获取个位上的数字
sum=sum+pow(digit,3);//将和加上上行代码所获得的个位数字的立方和
number=number/10;//将数字除以10,继续while循环
}
if(sum==temp)//根据sum的结果判断是否为水仙花树
res=1;
else
res=0;
return res;
}
这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)

你这个程序有一个bug,就是没有判断用户的输入是否为合法的。对用户输入的m n的值范围没有进行判断。可进行相应的修改,使程序更完美。


肥城市19793349977: 输入2个正整数m和n(1<=m,n<=500),统计?
双窦肝欣: #include "stdio.h"#include "math. h"int prime(int n){ int i,flag=1; for(i=2;i { if(n... long s=0; printf("请输入整数m:"); scanf("%d",&m); printf("请输入整数n:"...

肥城市19793349977: 输入两个正整数m和n(1<=m,n<=1000),输出m~n之间所有满足各位数字的立方和等于他本身的数. -
双窦肝欣: #include<stdio.h> int fun(int n) {int i,j,k,flag=0;i=n/100;j=n/10%10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)flag=1;return flag; } main() {int n;for(n=100;n<=999;n++){if(fun(n)==1)printf("%d\t",n);} }求谢谢

肥城市19793349977: 用c语言编写程序,输入两个正整数m和n,计算m!+n! -
双窦肝欣: #include <stdio.h> void main() {//计算阶乘数的加和float i,m,n,ji=1,sum=0,sum1=0,sum2=0;scanf("%f",&m);scanf("%f",&n);for(i=1;i<=m;i++){ji*=i;sum1+=ji;}for(i=1;i<=n;i++){ji*=i;sum2+=ji;}sum0=sum1+sum2;printf("阶乘的加和结果是:%.2f\n",sum0); }

肥城市19793349977: C++实现输入两个正整数m和n,求其最大公约数和最小公倍数? -
双窦肝欣: #include "stdio.h" void main() { int m,n,i,c; printf("请输入两个正整数\n"); scanf("%d %d",&m,&n); c = m < n ? m : n ; // 取m n 中较小的数,赋值给c // for(i = 2 ; i <= c ; i++) { if( m % i == 0 && n % i == 0) { printf("m 与 n 的最大公约数为%...

肥城市19793349977: 用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数. -
双窦肝欣: #include main(){long int a,b,d; long int m,n,i,j; double c,h; c=1; scanf("%ld%ld",&m,&n); if(m>=n){ b=m;d=n;}else{b=n;d=m;} for(i=1;i if((m%i==0) && (n%i==0) && (m%n!=0) && (n%m!=0)){ c=c*i;}else{if(b%d==0){c=d;}}}h=(m*n/c); printf("%.0lf %.0lf",c,h);return 0; }

肥城市19793349977: python分别输入2个正整数m和n(m < n)? -
双窦肝欣: 代码: import random random.seed(50) m,n=int(input()),int(input()) l=[random.randint(m,n) for i in range(1000)] l=[(e,l.count(e)) for e in set(l)] l.sort(key=lambda t:t[1]) print('{}:{}'.format(*l[-1])) print('{}:{}'.format(*l[0])) 运行结果截图:

肥城市19793349977: C语言编程:输入两个正整数m和n,求其最大公约数和最小公倍数,急!急! -
双窦肝欣: #include int main() { int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/ printf("Enter two integer:\n"); scanf("%d %d", &m, &n); if (m > 0 && n >0) { m_cup = m; n_cup = n; res = m_cup % n_cup; while (res != 0) { m_cup = n_cup; n_cup = ...

肥城市19793349977: C语言:输入两个正整数m和n(要求m〈=n)求m!+(m+1)!+……n! 谢啦 -
双窦肝欣: #include "stdio.h" main() {int m,n,i;long int sum=1,sum1=1,sum2=1,t;printf("请输入m>n\n");scanf("%d",&m);scanf("%d",&n);while(m {clrscr();printf("请重新输入m,n\n");scanf("%d",&m);scanf("%d",&n);...

肥城市19793349977: 输入两个正整数m和n(1<=m,n<=1000),输出m~n之间所有满足各位数字的立方和等于他本身的 -
双窦肝欣: 展开全部#include int is(int number) { int s = 0,a = 0; int b = number; while(number) { a = number % 10; s += a*a*a; number /= 10; } if(s == b) return 1; else return 0; } int main(void) { int m,n,i; printf("Input m:"); scanf("%d",&m); printf("Input n:"); ...

肥城市19793349977: 编写程序,输入两个正整数m和n,计算m!+n! -
双窦肝欣: #include<stdio.h> #include<stdlib.h> int main() {int q, m, n, x, z, s;scanf("%d%d", &m, &n);x = m > n ? n : m, z = m > n ? m : n;for (s = q = 1; q <= x; s *=q, q++)s *= 2;for (q = x + 1; q <= z; s *= q, q++)printf("result = %d\n", s);return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网