中国古代文献中曾记载过“大衍数 列”,主要用于解释中国传统文化中的太极衍生原理。它的前几项是 0、 2、4、8、12、18……。其规律:偶数项是序号的平方再除以 2,奇数项 是序号平方减 1 再除以 2。请编写程序,打印大衍数列的前 100 项,水 平制表符分隔,每 10 个一行。
时间: 2023-05-28 09:03:36 浏览: 79
#include <iostream>
using namespace std;
int main() {
int n = 100;
for (int i = 0; i < n; i++) {
int num;
if (i % 2 == 0) {
num = i * i / 2;
} else {
num = (i * i - 1) / 2;
}
cout << num << "\t";
if ((i + 1) % 10 == 0) {
cout << endl;
}
}
return 0;
}
相关问题
利用Python打印大衍数列第n项
大衍数列是指:1、11、21、1211、111221、312211、13112221、1113213211、31131211131221、……
其中,第一项是 1,第二项是 11,第三项是 21,第四项是 1211,以此类推。
要打印大衍数列的第n项,可以先从第三项开始,依次计算每一项,直到计算到第n项为止。具体代码如下:
```python
def daiyan(n):
if n == 1:
return '1'
elif n == 2:
return '11'
else:
s = daiyan(n-1) # 先求出前一项
result = '' # 用来存储当前项的字符串
count = 1 # 用来统计连续出现的数字个数
for i in range(1, len(s)):
if s[i] == s[i-1]: # 如果当前数字和前一个数字相同
count += 1 # 统计个数加1
else: # 如果不同
result += str(count) + s[i-1] # 将统计结果加入结果字符串中
count = 1 # 重置计数器
result += str(count) + s[-1] # 处理最后一个数字
return result
n = int(input("请输入要求的大衍数列的项数:"))
print("第{}项是:{}".format(n, daiyan(n)))
```
运行结果如下:
```
请输入要求的大衍数列的项数:10
第10项是:13211311123113112211
```
Python第1关:大衍数列n项
大衍数列是指以下数列:
1, 2, 4, 7, 11, 16, 22, 29, 37, 46, ...
其中第1项为1,后面每一项为前一项加上它的项号(从2开始)。
现在请你编写一个Python程序,输入一个正整数n(n<=1000),输出大衍数列的前n项。
例如,输入n=5,则输出:1, 2, 4, 7, 11。
提示:可以使用for循环来实现。