一个c语言编程题
设有一个3位数,它的百位数、十位数、个位数的立方和正好等于这个3位数,如153=1+125+27。编写函数,返回小于等于传入参数n且满足该条件的三位数(称为水仙花数)的个...
设有一个3位数,它的百位数、十位数、个位数的立方和正好等于这个3位数,如153=1+125+27。
编写函数,返回小于等于传入参数n且满足该条件的三位数(称为水仙花数)的个数。
(指定函数原型:int find(int n))
输入输出格式要求:
编写函数int find(int n);
返回值要求:如果传入参数n不是三位数或者在该范围内没有找到,则find返回0,
否则返回找到的水仙花数的个数。
注意:不要在find函数中打印(如调用printf或puts等函数)任何数据,否则视为错误。
例如:
n为:400
find函数应返回3 展开
编写函数,返回小于等于传入参数n且满足该条件的三位数(称为水仙花数)的个数。
(指定函数原型:int find(int n))
输入输出格式要求:
编写函数int find(int n);
返回值要求:如果传入参数n不是三位数或者在该范围内没有找到,则find返回0,
否则返回找到的水仙花数的个数。
注意:不要在find函数中打印(如调用printf或puts等函数)任何数据,否则视为错误。
例如:
n为:400
find函数应返回3 展开
4个回答
展开全部
#include <stdio.h>
int find(int n){
int i,m,k=0,t,s=0;
if(n>=100 &&n<=999){//是三位数,查找
for(i=100;i<=n;++i){
s=0;
m=i;
while(m){
t=m%10;
s+=t*t*t;
m=m/10;
}
if(s==i)
k++;
}
}
return k;
}
int main(){
int a;
scanf("%d",&a);
printf("%d\n",find(a));
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int find(int n) {
int i,t=0,n1,n2,n3;
while (n < 100 | n >999) retuen 0;
for (i=100,i<=n,i++) {
n1 = int (i /100); n2 = int ((i-n1*100)/10); n3 = int (i-n1*100-n2*10);
if (n1^3+n2^+n3^3 = i) t++;
}
return 0;
}
int i,t=0,n1,n2,n3;
while (n < 100 | n >999) retuen 0;
for (i=100,i<=n,i++) {
n1 = int (i /100); n2 = int ((i-n1*100)/10); n3 = int (i-n1*100-n2*10);
if (n1^3+n2^+n3^3 = i) t++;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询