Linux系统运用case语句,编写一段脚本,从键盘输入一数值N,计算从1+2+...+N的和,并输入结果,执行相关命令如下:
时间: 2024-03-15 11:45:05 浏览: 21
好的,以下是脚本的代码:
```bash
#!/bin/bash
echo "请输入一个正整数N:"
read N
sum=0
case $N in
''|*[!0-9]*) # 判断输入是否为空或者非数字
echo "请输入一个正整数!"
exit 1
;;
*) # 如果输入是一个数字,则进行计算
for ((i=1; i<=N; i++))
do
((sum+=i))
done
echo "1+2+...+$N的和为:$sum"
;;
esac
```
执行过程如下:
1. 首先,脚本会要求用户输入一个正整数N;
2. 接着,根据输入的N,使用case语句判断输入是否为空或者非数字,如果是,则输出错误信息并退出脚本,否则进行计算;
3. 计算1+2+...+N的和,并输出结果。
注意:在此脚本中,我们使用了双括号(( ))来进行数值计算,这是Bash的高级特性,可以避免一些常规数学计算的繁琐。
相关问题
输入n,用递归法计算1方+2方...+n方
以下是Python代码:
```python
def power(n):
if n == 1: # base case
return 1
else:
return power(n-1) + n**2 # recursive case
n = int(input("请输入n:"))
result = power(n)
print(result)
```
每次递归调用时,我们将n减1并计算(n-1)方,然后将其与n的平方相加,以得到n的平方。当n等于1时,我们返回1作为基础情况的结果。
例如,当n为5时,递归调用的顺序如下:
- power(5) = power(4) + 5**2
- power(4) = power(3) + 4**2
- power(3) = power(2) + 3**2
- power(2) = power(1) + 2**2
- power(1) = 1
因此,power(5)的结果为1 + 2**2 + 3**2 + 4**2 + 5**2 = 55。
c语言用递归求和1+2+3+4+...+n
#include <stdio.h>
int sum(int n);
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
printf("Sum of 1 to %d is %d\n", n, sum(n));
return 0;
}
int sum(int n) {
if (n == 1) { // base case
return 1;
} else {
return n + sum(n-1); // recursive case
}
}