用while循环求1-100内的奇数,以列表形式输出
时间: 2023-05-31 22:02:03 浏览: 99
```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 类型的范围,导致程序计算错误。因此,实际应用中需要使用高精度计算或其他方法避免这种情况的出现。
【问题描述】 将1~p之间奇数顺序累加存入n中,直到其和首次等于或大于q为止或1~p之间所有奇数参与累加为止。程序输入p,q的值,输出n的值、参与累加的奇数个数,以及参与运算的最大的那个奇数(分别占一行)。 【输入形式】 用两个input()函数输入p和q的值作为实参,调用自定义函数oddNumSum()实现所述功能 【输出形式】 依次输出n的值、参与累加的奇数个数,以及参与运算的最大的那个奇数 【样例输入】 1000 4000 【样例输出】 4096 64 127
以下是实现该功能的 Python 代码:
```python
def oddNumSum(p, q):
n = 0 # 累加和
count = 0 # 参与累加的奇数个数
max_odd = 0 # 参与运算的最大的奇数
odd = 1 # 当前处理的奇数
while n < q and odd <= p:
n += odd
count += 1
max_odd = odd
odd += 2
if odd > p and n < q:
max_odd = p
print(n)
print(count)
print(max_odd)
p = int(input())
q = int(input())
oddNumSum(p, q)
```
这个函数 `oddNumSum()` 接受两个参数 `p` 和 `q`,分别表示序列的上限和累加和的下限。函数中使用变量 `n`、`count`、`max_odd` 和 `odd`,表示当前的累加和、参与累加的奇数个数、参与运算的最大奇数和当前处理的奇数。在循环中,如果累加和 `n` 大于等于 `q` 或所有奇数都已经参与累加,循环结束。最后,输出累加和 `n`、参与累加的奇数个数和参与运算的最大奇数。
在主程序中,使用 `input()` 函数输入 `p` 和 `q`,然后调用 `oddNumSum()` 函数实现上述功能。
阅读全文