王炸鸡在努力 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日

悬赏问题

  • ¥60 Qcustomplot绘制实时动态曲线
  • ¥20 运用matlab画x-y图
  • ¥15 用idea运行项目,运行tomcat报错:断言失败
  • ¥15 Sqlserver查询链接服务器数据问题
  • ¥15 Bibtex4Word 引用中文文献
  • ¥20 用opencv c/c++ 转换成灰度图,然后做一下直方图均衡,输出mp4文件
  • ¥20 matlab中的双层数值积分
  • ¥50 服务器打印水晶报表问题
  • ¥30 gradle环境下javafx项目如何使用druid连接池
  • ¥15 服务器打印水晶报表问题