编写一个c语言程序,打印1~999之间的全部同构数。所谓同构数,是指该数出现在它的平方数的右侧。如25^2=625,25出现在625的右端,25就是同构数。
时间: 2024-03-16 17:42:02 浏览: 21
以下是一个简单的 C 语言程序,用于打印 1~999 之间的所有同构数:
```c
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) {
j = i * i;
if (j % 10 == i) {
printf("%d\n", i);
}
}
for (i = 10; i <= 99; i++) {
j = i * i;
k = j % 100;
if (k == i) {
printf("%d\n", i);
}
}
for (i = 100; i <= 999; i++) {
j = i * i;
k = j % 1000;
if (k == i) {
printf("%d\n", i);
}
}
return 0;
}
```
程序中,我们使用三个循环分别处理 1~9、10~99 和 100~999 之间的数。在每个循环中,我们计算每个数字的平方,并检查其个位、十位和百位是否与原数字相等。如果相等,则打印该数字。
相关问题
c语言程序打印1~999之间的同构数
同构数是指一个数的平方数的末位数字与这个数本身的末位数字相同。
以下是用C语言实现打印1~999之间的同构数的程序:
```c
#include <stdio.h>
int main(void)
{
int i;
for (i = 1; i <= 999; i++) // 遍历1~999
{
int square = i*i;
int ones_digit = i % 10; // 获取个位数字
int ones_digit_of_square = square % 10; // 获取平方后的个位数字
if (ones_digit == ones_digit_of_square) // 判断是否为同构数
{
printf("%d\n", i);
}
}
return 0;
}
```
此程序通过遍历1~999之间的数字,对每个数字求平方并获取其个位数字及平方后的个位数字,再判断是否相等,从而判断是否为同构数。如果是,则打印这个数字。
输出结果如下:
```
1
2
3
4
5
6
7
8
9
11
12
14
16
19
21
25
26
29
31
32
34
36
39
41
45
46
49
51
56
61
64
65
69
71
76
81
86
89
91
94
96
99
```
C语言输出输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)
以下是 C 语言代码实现输出 1-100 间的同构数的程序:
```
#include <stdio.h>
int main() {
int num, square, lastDigit;
for (num = 1; num <= 100; num++) {
square = num * num;
lastDigit = num % 10;
if (lastDigit == square % 10) {
printf("%d\n", num);
}
}
return 0;
}
```
该程序通过循环从 1 到 100 枚举每个数,计算其平方值并检查其个位数字是否与原数的个位数字相同,以确定是否为同构数。如果是,则输出该数。