VC++菜鸟急求帮助 一个关于水仙花数的程序不知道哪里错了。。。
vc吧
全部回复
仅看楼主
level 4
zhaokidd123 楼主
题目是 求区间(a,b)或者(b,a)之间的水仙花个数第一行输入数据组数第二行输入具体区间然后输出水仙花个数 为什么我的程序一直输出不了正确结果?我感觉是对的啊 #include <stdio.h>
#include <math.h>
int nci(int x,int i)
{
int j,n;
for(j=1;j<i;j++)
{
n=x*x;
}
return n;
}
int cifang( int x)
{
int i,result=1;
for(i=0;i<x;i++)
{
result=result*10;
}
return result;
} long shuixianhua(long x)
{
long i,t,max=0;
long f[100];
long total=0;
f[0]=x%10;
if(x>=100)
{
for(i=1;;i=i+1)
{
if(x>=cifang(i+1))
{f[i]=(x%cifang(i+1))/cifang(i);}
else
f[i]=x/cifang(i);
max=i;
break;
}
}
for(t=0;t<=max;t++)
{
total=total+nci(f[t],max);
}
return total;
} int fun(int a,int b)
{
if(b>a)
{
int r=0;
a=r;
a=b;
b=r;
}
int i,o;
for(i=b;i<=a;i++)
{
if(shuixianhua(i)==i)
o++;
}
return o;
} int main()
{
int i,u,b,f[100],g[100];
scanf("%d",&i);
for(u=0;u<i;u++)
{
scanf("%d%d",&f[u],&g[u]);
}
for(b=0;b<i;b++)
{
printf("%d\n",fun(f[u],g[u]));
}
return 0;
}
2012年12月02日 03点12分 1
1