王炸鸡在努力 2022-10-17 22:54 采纳率: 33.3%
浏览 58
已结题

C语言求同构数没有结果

为啥不对哇?
/*求同构数

【问题描述】
设b是a的平方,若a与b的尾部相同,则称a是同构数。例如,5的平方是25,所以5是同构数,25也是同构数。

编写程序满足如下要求:
输入两个整数m和n,找出m、n之间全部的同构数(包括m和n本身)。

【输入形式】
从键盘输入数据范围的下限m和上限n,要求m和n都为整数,m和n之间用一个空格分隔。

【输出形式】
按照由小到大的顺序输出所有同构数,每个整数占一行。若在该范围内没有同构数,则输出字符串No Answer。

【样例输入1】
0 30
【样例输出1】
0
1
5
6
25
【样例说明1】
在0~30之间的同构数有0, 1, 5, 6, 25。

【样例输入2】
100 200
【样例输出2】
No Answer
【样例说明2】
在100~200之间,因为没有同构数,所以输出No Answer。*/
#include<stdio.h>
int main()
{
int m,n,a,b,t,i=1,f=0;
scanf("%d %d",&m,&n);

for(a=m;a<=n;a++)
{

    b=a*a;
    t=a;
    do
    {
        t=t/10;
        i=i*10;
    }while(t!=0);
    if(b%i==a)
       {
        printf("%d\n",a);
        f++;}

}
if(f==0)
    printf("No Answer");

    return 0;

}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-10-18 00:13
    关注

    问题见注释,供参考:

    #include <stdio.h>
    int main()
    {
        int m,n,a,b,t,i=1,f=0;
        scanf("%d %d",&m,&n);
        for(a=m;a<=n;a++)
        {
            b=a*a;
            t=a;
            i=1; //修改 i 没有重新置位
            do{
                t=t/10;
                i=i*10;
            }while(t!=0);
            if(b%i == a)
            {
                printf("%d\n",a);
                f++;
            }
        }
        if(f==0)
            printf("No Answer");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 已采纳回答 10月21日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用