发布网友 发布时间:2024-10-04 20:15
共5个回答
热心网友 时间:2024-10-04 21:07
#include "stdio.h"运行结果:
热心网友 时间:2024-10-04 21:03
分析:
首先同构数的定义;一个n位正整数等于它的平方的最低n位数。
例如:
1位数5的平方等于25,而25的最后1位数就是5;
2位数25的平方等于625,而625的最后2位数就是25;
1也是同构数。
分析:
小于10的数字,是1位数,所以需要求出:它的平方数除以10的余数。因为任何整数除以10得到的余数是1位数。
例如:
自然数 平方 除以10的余数
1 1 1%10 = 1
2 4 4%10 = 4
3 9 9%10 = 9
4 16 16%10 = 6
5 5 25%10 = 5
10-99之间的数,是两位数,所以需要求出:它的平方数除以100的余数。因为任何整数除以100得到的余数是2位数。
例如:
自然数 平方 除以10的余数
10 100 100%100 = 0
11 121 121%100 = 21
12 144 144%100 = 44
......
25 625 625%100 = 25
代码如下:
热心网友 时间:2024-10-04 21:06
#include <stdio.h>
void main( void)
{
int i = 0, j = 0;
while( 1) //无限循环,运行程序后可以不断地进行输入和判断
{
printf("输入一个介于0~99的整数。\n"); //输入提示
scanf("%d", &i); //输入读取
j = i * i; //计算输入数i的平方
if( i < 10) //10以内的数
{
if( (j%10) == i) //判断i^2的个位数是否与i相等
{
printf("%d是同构数。\n", i); //若相等则为同构数
}
else
{
pirntf("%d不是同构数。\n", i); //若不相等则不为同构数
}
}
if( i >= 10) //10和10以上的数
{
if( (j%100) == i)
printf("%d是同构数。\n", i);
else
printf("%d不是同构数。\n", i);
}
}
}//第一次答这种题目,这个文本编辑真的是蛋疼
热心网友 时间:2024-10-04 20:59
你的要求怪高的。同构数是会出现在它的平方的右边的数。热心网友 时间:2024-10-04 20:58
思路:同构数是会出现在它的平方的右边的数。具体见代码:
#include <stdio.h>