输入整数n(n<10),求前n个同构数(一整数若正好为其平方数的尾部,则称该数为同构数,例如,5正好是25的尾部,故5为同构数),程序运行效果如下。 提示:若str(i*i).endswith(str(i))为真,则i为同构数。 n=6 NO1:5 NO2:6 NO3:25 NO4:76 NO5:376 NO6:625
时间: 2024-03-13 16:43:23 浏览: 159
好的,以下是 Python 代码实现:
```python
n = int(input("请输入一个小于10的整数n:"))
count = 0 # 已经找到的同构数个数
num = 1 # 从1开始依次判断每个数是否是同构数
while count < n:
if str(num*num).endswith(str(num)):
count += 1
print("NO{}:{}".format(count, num))
num += 1
```
运行结果:
```
请输入一个小于10的整数n:6
NO1:5
NO2:6
NO3:25
NO4:76
NO5:376
NO6:625
```
相关问题
(1)数字对称金字塔显示,输入n(n<10),显示数字对称金字塔的前n行,程序运行效果如下。 n=6 1 121 12321 1234321 123454321 12345654321 (2)输入整数n(n<10),求前n个同构数(一整数若正好为其平方数的尾部,则称该数为同构数,例如,5正好是25的尾部,故5为同构数),程序运行效果如下。 提示:若str(i*i).endswith(str(i))为真,则i为同构数。 n=6 NO1:5 NO2:6 NO3:25 NO4:76 NO5:376 NO6:625 (3) 文本加密。输入一行字符,试按照以下加密规则对其加密后输出其密文形式(加密规则:字母A-Z,B-Y,C-X....a-z,b-y,c-x...,数字0-9,1-8,2-7...其他字符保持不变),程序运行效果如下。 提示:由于ord("A")+ord("Z")=ord("B")+ord("Y")=...=155, 则大写字母x的密文形式应该为chr(155-ord(x)) 输入一行字符:123,Up,I Love you China! 加密后的密文:876,Fk,R Olev blf Xsrmz!
以下是三道题目的Python代码实现:
(1) 数字对称金字塔显示
```python
n = int(input("请输入数字n(n<10): "))
for i in range(1, n+1):
s = ""
for j in range(1, i+1):
s += str(j)
for k in range(i-1, 0, -1):
s += str(k)
print(s.center(n*2-1))
```
(2) 求前n个同构数
```python
n = int(input("请输入数字n(n<10): "))
count = 0
i = 1
while count < n:
if str(i*i).endswith(str(i)):
count += 1
print("NO{0}:{1}".format(count, i))
i += 1
```
(3) 文本加密
```python
s = input("请输入一行字符: ")
encrypted = ""
for c in s:
if c.isalpha():
if c.isupper():
encrypted += chr(155-ord(c))
else:
encrypted += chr(219-ord(c))
elif c.isdigit():
encrypted += chr(105-ord(c))
else:
encrypted += c
print("加密后的密文: " + encrypted)
```
正整数n若是它平方数的尾部,则称n为同构数。例如5是25右边的数,25是625右边的数,5和25都是同构数。 输入描述多组数据输入,每一组输入正整数n 输出描述输出1到正整数n之间全部同构数,从小到大依次排列,一行一个数。C语言表达
在C语言中,你可以编写如下的函数来解决这个问题。首先定义一个辅助函数来判断一个数字是否是其平方数的尾部,然后主函数遍历所有小于等于给定输入n的正整数,找出并打印同构数。
```c
#include <stdio.h>
// 辅助函数,检查一个数是否是其平方数的尾部
int isHomomorphic(int num) {
int square = sqrt(num);
return num == square * square || (square * square + square) == num;
}
// 主函数,输出1到n之间的同构数
void printHomomorphicNumbers(int n) {
for (int i = 1; i <= n; ++i) {
if (isHomomorphic(i)) {
printf("%d ", i); // 打印同构数
}
}
printf("\n"); // 结束一行并添加换行符
}
int main() {
int n;
while (scanf("%d", &n) != EOF && n > 0) { // 读取输入,直到n为0
printHomomorphicNumbers(n);
}
return 0;
}
```
这个程序会读取多组数据,并对每组输入的正整数n,找出并打印1到n之间的所有同构数。
阅读全文
相关推荐
















