用dowhile,while,for求n!
时间: 2024-04-29 14:15:10 浏览: 9
以下是三种使用do-while、while和for循环求n!的方法:
1. 使用do-while循环求n!
```java
int i = 1;
int result = 1;
do {
result *= i;
i++;
} while (i <= n);
System.out.println("The answer of n! is " + result);
```
2. 使用while循环求n!
```java
int i = 1;
int result = 1;
while (i <= n) {
result *= i;
i++;
}
System.out.println("The answer of n! is " + result);
```
3. 使用for循环求n!
```java
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println("The answer of n! is " + result);
```
相关问题
用do while循环以及for循环求s= a+ aa+ aaa……
好的,我知道了。以下是使用 do while 循环和 for 循环分别实现求 s = a + aa + aaa + ... 的代码:
使用 do while 循环:
```c
#include <stdio.h>
int main() {
int a, n, s = 0, t = 0;
printf("请输入 a 和 n 的值:");
scanf("%d%d", &a, &n);
int i = 1;
do {
t = t * 10 + a;
s += t;
i++;
} while (i <= n);
printf("s = %d\n", s);
return 0;
}
```
使用 for 循环:
```c
#include <stdio.h>
int main() {
int a, n, s = 0, t = 0;
printf("请输入 a 和 n 的值:");
scanf("%d%d", &a, &n);
for (int i = 1; i <= n; i++) {
t = t * 10 + a;
s += t;
}
printf("s = %d\n", s);
return 0;
}
```
两个程序的实现思路基本相同,都是利用一个变量 t 来记录上一项的值,每次循环更新 t 的值并累加到 s 中。不同的是,使用 do while 循环时需要先初始化计数器变量 i,然后在循环内部对 i 进行递增操作;而使用 for 循环则直接在循环头部初始化计数器变量 i,然后在循环条件中进行判断和递增操作。
分别使用while、for、do while语句计算s=1!+3!+5!+7!+n!
使用while语句计算s=1!+3!+5!+7!+n!:
```
int n = 7; // 假设n为7
int i = 1;
int sum = 0;
int fac = 1;
while(i <= n){
fac *= i;
if(i % 2 == 1){
sum += fac;
}
i++;
}
```
使用for语句计算s=1!+3!+5!+7!+n!:
```
int n = 7; // 假设n为7
int sum = 0;
int fac = 1;
for(int i = 1; i <= n; i++){
fac *= i;
if(i % 2 == 1){
sum += fac;
}
}
```
使用do while语句计算s=1!+3!+5!+7!+n!:
```
int n = 7; // 假设n为7
int i = 1;
int sum = 0;
int fac = 1;
do{
fac *= i;
if(i % 2 == 1){
sum += fac;
}
i++;
}while(i <= n);
```