西绿柿556 2021-11-20 19:45 采纳率: 40%
浏览 91
已结题

C语言求给定区间内同构数之和

问题遇到的现象和发生背景

题目:正整数[a,b]之间的全部同构数之和
输入:只有一行,两个正整数a,b,空格分开,位于[1,10000]之间
输出:一行,a,b,之间同构数之和

问题相关代码,请勿粘贴截图

以下是我的答案,DEV上运行正确,但无法通过测评

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int m,i,j,sum;
    int s[10000];
    for(i=a;i<=b;i++){
        for(j=1;j<5;j++){
            if(i>=pow(10,j-1)&&i<=pow(10,j)){
                m=(i*i)%(int)(pow((double)10,(double)j));
                if(m==i){
                    s[i]=i;
                }
                else{
                    s[i]=0;
                }
            }
        }
    sum=sum+s[i];        
    }
    printf("%d\n",sum);
    return 0;
 } 




  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-20 20:32
    关注

    供参考:

    #include <stdio.h>
    int main()
    {
        int i, a, b, k, t, s, sum;
        scanf("%d%d", &a, &b);
        for (i = a,sum = 0; i <= b; i++)
        {
            t = i; k = i * i; s = 1;
            while (t) { s *= 10; t /= 10; }
            if ((k % s) == i)
                sum+=i;
        }
        printf("%d",sum);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 11月20日