编写程序,输入非负整数n,分别用for和while求n!如果输入的是负数,则继续提示输入非负整数,直到n>=0
时间: 2023-05-19 16:01:19 浏览: 157
以下是使用 Python 语言编写的程序,可以输入非负整数 n,然后使用 for 和 while 循环分别计算 n 的阶乘:
```python
n = int(input("请输入一个非负整数:"))
while n < 0:
n = int(input("请输入一个非负整数:"))
# 使用 for 循环计算 n 的阶乘
fact = 1
for i in range(1, n+1):
fact *= i
print("使用 for 循环计算 %d! = %d" % (n, fact))
# 使用 while 循环计算 n 的阶乘
fact = 1
i = 1
while i <= n:
fact *= i
i += 1
print("使用 while 循环计算 %d! = %d" % (n, fact))
```
如果输入的是负数,则程序会一直提示输入非负整数,直到输入的数大于等于 0。
注意:这个程序只是一个示例,实际编写程序时需要考虑更多的边界情况和错误处理。
相关问题
c#编写一个程序,输入整数n,显示n以内所有素数,如果n输入为负数,提示输入错误,直到输入正确为止
好的,以下是C#编写的程序,可以实现你的需求:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int n;
while (true)
{
Console.Write("请输入一个正整数n:");
if (int.TryParse(Console.ReadLine(), out n))
{
if (n >= 0)
{
break;
}
}
Console.WriteLine("输入错误,请重新输入!");
}
Console.WriteLine($"0~{n}内的所有素数为:");
for (int i = 2; i <= n; i++)
{
bool isPrime = true;
for (int j = 2; j <= Math.Sqrt(i); j++)
{
if (i % j == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
Console.Write($"{i} ");
}
}
}
}
```
程序的具体思路如下:
1. 首先通过`while`循环实现输入正整数n的功能,当用户输入负数或非整数时,程序会提示用户重新输入。
2. 然后通过`for`循环遍历从2到n之间的所有整数,判断每个数是否为素数。
3. 判断素数的方法是,对于每个数i,从2到`Math.Sqrt(i)`进行遍历,如果i能被其中任意一个数整除,则i不是素数。
4. 如果i是素数,则输出i。
注意,为了判断一个数是否为素数,我们只需要遍历到它的平方根即可,这可以减少程序的运行时间。
请用python语言编写以下程序:统计若干个非负整数中正数的个数(输入负数为止)
以下是使用Python编写的程序,它可以接收用户输入的非负整数,并在输入负数时停止输入并统计正数的个数:
```python
count = 0 # 初始化正数计数器为0
while True:
num = int(input("请输入一个非负整数:"))
if num < 0:
break # 输入负数时跳出循环
if num > 0:
count += 1 # 统计正数的个数
print("输入的正数个数为:", count)
```
该程序使用了一个while循环,当用户输入的数字小于0时,循环会跳出。在循环体内,如果用户输入的数字大于0,则正数计数器会加1。最后,程序会输出统计结果。