学习C语言时遇到的一个问题,求解答

这样一个题,我怎么想都不太会,哪位大神能帮忙解决一下,代码怎么打呢?最好用选择和循环结构,不要用太难的语法,谢谢。

/*参考代码如下:*/
#include<stdio.h>
#include<conio.h>

int wide_n(int num)
{
int i,n=0;
for(i = num; i != 0;++n,i = i/10);      
return n;
}
int pow_n(int num, int n)
{
int i,s = 1;
for(i=0; i<n; ++i)
    s = s*num;
return s;   
}
int isshuixian(int num)
{
int i,j,k,n,s=0,t=0;
if(num<100)
    return 0;
n = wide_n(num);
for(i = 0, t = num; i < n; ++i){
    j = t%10;
    t = t/10;
    k = pow_n(j, n);
    s = s+k;

if(num == s)
    return 1;
return 0;
}
int numOfShui(int a, int b)
{
    int i,j,t;
    t = a>b?a:b;
    i = a<b?a:b;
    for(j = 0;i <= t;++i)
        if(isshuixian(i)){
        ++j;
        }
    return j;   
}
int main()
{
int i, n,a,b, s[100]={0};

scanf("%d",&n);/*n不大于100*/
for(i = 0; i < n; ++i){
    scanf("%d%d",&a,&b);/*注意:TC2.0编译器int最大不超过32761*/
    s[i]=numOfShui(a,b);
}
for(i = 0; i < n; ++i){
    printf("%d\n", s[i]);
}
getch();
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答