用while循环求1-100内的奇数,以列表形式输出
时间: 2023-05-31 10:02:03 浏览: 64
```python
odd_list = [] # 创建一个空列表,用于存储奇数
num = 1 # 初始化num为1
while num <= 100:
if num % 2 != 0: # 判断num是否为奇数
odd_list.append(num) # 将奇数添加到列表中
num += 1 # 继续循环
print(odd_list) # 输出奇数列表
```
输出结果为:
```
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
```
相关问题
c 语言用 while 循环 编写程序,输入正整数n,求s=1-2!/3+3!/5+....+(-1)^(n+1)n!/(2n_1)
以下是使用 while 循环实现的 C 语言程序:
```c
#include <stdio.h>
int main() {
int n, i = 1, j = 2, sign = 1;
long long s = 0, fact = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
while (i <= n) {
fact *= i;
if (i % 2 == 1) {
s += sign * fact / j;
sign = -sign; // 每次改变符号
}
i++;
j += 2;
}
printf("s = %lld\n", s);
return 0;
}
```
程序中使用了三个变量:i、j 和 sign。
变量 i 从 1 开始递增,表示当前计算的阶乘数,最大值为 n。
变量 j 初始值为 2,每次递增 2,表示当前计算的分母,分母是奇数,因为分母需要满足 2n+1 的形式。
变量 sign 初始值为 1,表示当前计算的项的符号。每次计算完一项后,sign 取相反数,以便计算下一项时改变符号。
在循环体中,先计算当前阶乘数 i 的阶乘,然后根据奇偶性决定是否加入到 s 中。如果 i 是奇数,则加上 sign * fact / j;否则不加。最后 i 递增 1,j 递增 2,以便计算下一项。
最后输出 s 的值。
需要注意的是,当 n 很大时,阶乘的值会很大,可能会超出 long long 类型的范围,导致程序计算错误。因此,实际应用中需要使用高精度计算或其他方法避免这种情况的出现。
在Python中2.流程控制:考拉兹猜想又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对 它乘3再加1,如果它是偶数,则对它除以2。如此循环,最终都能得到1。编写一个程序 输入一个正整数,打印其考拉兹序列。假设输入正整数=5。要求:输出形式为以逗号分隔 的考拉兹序列。
Python代码实现如下:
```python
num = int(input("请输入一个正整数:")) # 输入正整数
sequence = [num] # 存储考拉兹序列
while num != 1:
if num % 2 == 0: # 如果是偶数
num = num // 2
else: # 如果是奇数
num = num * 3 + 1
sequence.append(num) # 将计算后的数加入考拉兹序列
print(*sequence, sep=',') # 输出考拉兹序列,以逗号分隔
```
运行结果如下:
```
请输入一个正整数:5
5,16,8,4,2,1
```
注:在程序中使用了一个列表来存储考拉兹序列,首先将输入的正整数加入序列,然后按照考拉兹猜想的规则,不断计算并加入序列,直到计算结果为1。最后使用`print(*sequence, sep=',')`来输出考拉兹序列,其中`*sequence`表示将列表中的元素作为参数传递给`print()`函数,`sep=','`表示使用逗号来分隔输出结果。