鱼C论坛

 找回密码
 立即注册
查看: 1221|回复: 3

正整数n若是它平方数的尾部,则称n为同构数。

[复制链接]
发表于 2023-12-14 15:10:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述
正整数n若是它平方数的尾部,则称n为同构数。

例如5是25右边的数,25是625右边的数,5和25都是同构数。

输入描述
多组数据输入,每一组输入正整数n。

输出描述
输出1到正整数n之间全部同构数,从小到大依次排列,一行一个数。


求求这个代码为啥不对啊
#include <stdio.h>  
int f(int n)
{
    int s=n*n;
    int a=s%10;
    return a==n%10;
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
       for(int i=1;i<=n;i++)
       {
           if(f(i))
               printf("%d\n",i);
       }
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-14 15:11:34 | 显示全部楼层
你好,这是因为你的代码只判断了最后一位数是否相等,而同构数的定义是平方数的尾部和原数的尾部要完全一致。所以你需要对数字进行逐位比较。

以下是修改后的代码:
#include <stdio.h>int isIsomorphy(int n) {    int sq = n * n;    while (n > 0) {        if (n % 10 != sq % 10) {            return 0;        }        n /= 10;        sq /= 10;    }    return 1;}int main() {    int n;    while (scanf("%d", &n) != EOF) {        for (int i = 1; i <= n; i++) {            if (isIsomorphy(i)) {                printf("%d\n", i);            }        }    }    return 0;}
这个代码中,`isIsomorphy`函数用于判断一个数是否是同构数。它首先计算出该数的平方数`sq`,然后通过对比原数和平方数的每一位来判断它们是否一致。如果有任意一位不一致,则返回0表示不是同构数;否则,返回1表示为同构数。

在`main`函数中,我们通过循环输入多组测试数据,并依次判断每个数是否为同构数,如果满足条件则输出。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-14 15:22:00 | 显示全部楼层
FishC 发表于 2023-12-14 15:11
你好,这是因为你的代码只判断了最后一位数是否相等,而同构数的定义是平方数的尾部和原数的尾部要完全一致 ...

谢谢你啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-14 15:22:10 | 显示全部楼层

不客气,希望能帮到你!如果还有其他问题,随时提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表