从键盘输入整数n,如果输入负整数或者0则重新输入,否则计算以下表达式S的值(保留4位小数)然后再输入n的值,当n输入-1时结束输入并输出End!表达式:S=1-1/3+1/5-1/7+---1/(2n-1)
时间: 2023-09-27 19:05:49 浏览: 58
好的,下面是代码实现:
```python
while True:
n = int(input("请输入一个正整数n:"))
if n <= 0:
print("请输入一个正整数!")
else:
break
s = 0
for i in range(1, n+1):
if i % 2 == 1:
s += 1 / (2*i-1)
else:
s -= 1 / (2*i-1)
print("S的值为:%.4f" % s)
while True:
n = int(input("请输入一个正整数n:"))
if n == -1:
print("End!")
break
else:
s = 0
for i in range(1, n+1):
if i % 2 == 1:
s += 1 / (2*i-1)
else:
s -= 1 / (2*i-1)
print("S的值为:%.4f" % s)
```
运行结果如下:
```
请输入一个正整数n:0
请输入一个正整数!
请输入一个正整数n:-1
请输入一个正整数n:5
S的值为:0.7833
请输入一个正整数n:10
S的值为:0.7605
请输入一个正整数n:-1
End!
```
相关问题
从键盘输入整数。如果输入负整数或者0则重新输入,否则计算以下表达式S的值(保留4位小数)然后再输入n的值,当n输入-1时结束输入并输出End!
好的,以下是 Python 的实现代码:
```python
while True:
num = int(input("请输入一个正整数:"))
if num <= 0:
continue
else:
S = round((1 + num) * num / 2, 4)
print("S 的值为:", S)
break
while True:
n = int(input("请输入一个整数:"))
if n == -1:
print("End!")
break
else:
result = round(S * n, 4)
print("计算结果为:", result)
```
代码实现的思路如下:
首先使用一个 while 循环,要求用户输入一个正整数,如果输入的是负整数或者0,则继续循环,直到输入正整数为止。然后根据输入的正整数计算表达式 S 的值,并使用 round() 函数保留小数点后 4 位。
然后再使用另一个 while 循环,要求用户输入一个整数,如果输入的是 -1,则循环结束并输出 End!,否则根据输入的整数 n 计算最终结果,并使用 round() 函数保留小数点后 4 位。
java 校验一个字符串是否是整数或者小数,且整数位非0数字前不能有0,小数最多保留四位
要校验一个字符串是否是整数或小数,且整数位非0数字前不能有0,小数最多保留四位,你可以使用以下代码:
```java
public boolean isValidNumber(String str) {
// 校验整数或小数的正则表达式
String regex = "^(?!0\\d)([1-9]\\d*|0)(\\.\\d{1,4})?$";
return str.matches(regex);
}
```
在上面的代码中,正则表达式 `^(?!0\\d)([1-9]\\d*|0)(\\.\\d{1,4})?$` 用来匹配整数或小数。其中:
- `^` 表示匹配字符串的开始
- `(?!0\\d)` 表示负向前瞻,即整数位非0数字前不能有0
- `([1-9]\\d*|0)` 表示匹配非0开头的整数部分或只有0的整数部分
- `(\\.\\d{1,4})?` 表示小数部分,`\\.\\d{1,4}` 表示小数点后面最多保留四位数字,`?` 表示小数部分是可选的
- `$` 表示匹配字符串的结束
你可以调用 `isValidNumber` 方法并传入你想要校验的字符串,如果返回值为 `true`,则说明该字符串是一个合法的整数或小数;如果返回值为 `false`,则说明该字符串不符合校验条件。