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

这样一个题,我怎么想都不太会,哪位大神能帮忙解决一下,代码怎么打呢?最好用选择和循环结构,不要用太难的语法,谢谢。... 这样一个题,我怎么想都不太会,哪位大神能帮忙解决一下,代码怎么打呢?最好用选择和循环结构,不要用太难的语法,谢谢。 展开
 我来答
cylz0703
2018-10-28 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4356万
展开全部
/*参考代码如下:*/
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式