计算n+nn+nnn+....的值
时间: 2023-09-26 17:14:43 浏览: 90
这个问题可以用数学公式来表示。假设n是一个正整数,那么表达式n+nn+nnn+...可以写成:
n + 10n + 100n + 1000n + ...
这个表达式可以进一步化简为:
n(1 + 10 + 100 + 1000 + ...)
这里的括号里是一个无限等比数列,公比为10。那么这个等比数列的和可以用公式来计算:
S = a/(1-r),其中a是第一项,r是公比。
那么代入上面的表达式可以得到:
S = n/(1-10) = -n/9
所以,表达式n+nn+nnn+...的值为-n/9。
相关问题
用编程实现计算n+nn+nnn+....的和,其中n的值和计算到第几项m,由用户输入,例如n=2,m=5,计算2+22+222+2222+22222的和
可以使用字符串拼接的方式生成每一项的值,然后再将它们累加起来。具体实现如下:
```python
n = int(input("请输入n的值:"))
m = int(input("请输入计算到第几项:"))
s = 0 # 初始化总和
t = str(n) # 初始化当前项的字符串表示
for i in range(m):
s += int(t) # 将当前项的值累加到总和中
t += str(n) # 将n添加到当前项的末尾,生成下一项
print("计算结果为:", s)
```
例如,当n=2,m=5时,计算结果为24690。
利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....
以下是利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n;
printf("请输入n:");
scanf("%d", &n);
double s = 1.0; // 初始化s为1
for (int i = 2; i <= n; i++) {
int nn = i; // nn表示n...n,初始值为i
int count = 1; // 统计n的位数
while (nn >= 10) {
nn /= 10;
count++;
}
nn = i; // 重新赋值nn为i
double val = 0.0; // 计算1/nn...nn的值
for (int j = 1; j <= count; j++) {
val += nn / pow(10, (count-j+1));
}
s += 1.0 / val; // 累加到s中
}
printf("s = %lf\n", s);
return 0;
}
```
该程序首先读入一个正整数n,然后使用for循环遍历2到n的每个整数。对于每个整数i,我们需要计算1/nn...nn的值,其中nn表示n...n(共有i位)。为了计算nn,我们需要先统计n的位数,然后根据位数分解出每一位上的值。最后,利用pow函数计算1/nn...nn的值,并将其累加到s中。最终输出s的值即可。