中国古代文献中曾记载过“大衍数 列”,主要用于解释中国传统文化中的太极衍生原理。它的前几项是 0、 2、4、8、12、18……。其规律:偶数项是序号的平方再除以 2,奇数项 是序号平方减 1 再除以 2。请编写程序,打印大衍数列的前 100 项,水 平制表符分隔,每 10 个一行。
时间: 2023-05-28 18:03:36 浏览: 224
#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、2、4、7、11、16、22、29、37、46、56、67、79、92、106、121、137、154、172、191、211、232、254、277、301、326、352、379、407、436、466、497、529、562、596、631、667、704、742、781、821、862、904、947、991、1036、1082、1129、1177、1226、1276……
以下是Python代码实现大衍数列的前 n 项:
```python
n = int(input("请输入需要求的项数:"))
lst = [1]
for i in range(1, n):
lst.append(lst[i-1]+i)
print(lst)
```
输出结果:
```
请输入需要求的项数:10
[1, 2, 4, 7, 11, 16, 22, 29, 37, 46]
```
阅读全文