求sn=2+22+222+2222+......+222....222 怎么写这个C程序? 最后为n位数

2026年09月27日 23:04
有4个网友回答
网友(1):

#include"stdio.h"
#include"stdlib.h"   //个人编译环境需要

int main(void)

{
int   n, a, i;
double   s = 0, t = 0;
while (1)
{
printf("请输入a,n的数值:");
scanf("%d%d", &a, &n);
for (s = 0, t = 0, i = 1; i <= n; i++)
{
t = 10 * t + a;
s = s + t;
}
printf("%d   + %d%d + %d%d%d + …… + ……%d%d (%d个%d)=%.0lf\n", a, a, a, a, a, a, a, a, n, a, s);
}
system("pause");  ////个人编译环境需要
return   0;
}

以前自己写的,表示a+aa+aaa+aaaa+aaaaa+……+aaaaaa(N个a)=?

网友(2):

/*为您写好啦,请笑纳.*/
#include 

unsigned long long nnnnn(unsigned long long x, size_t y);

int main(void)
{
    unsigned long long a = 0;
    unsigned long long sumber = 0;
    size_t b = 0;

    printf("输入a的值:");  
    scanf(" %llu", &a);  //这里输入你要相加的数字,如输入3就会3 + 33 + 333...;
    printf("输入b的值:");  
    scanf(" %d", &b);  //这里输入你要加到第几位,如输入4就会a+aa+aaa+aaaa;
    sumber = nnnnn(a,b);
    printf("计算结果:%llu\n",sumber);
    return 0;
}

unsigned long long nnnnn(unsigned long long x, size_t y)
{
    unsigned long long temp = 1;
    unsigned long long value = 0;
    unsigned long long sum = 0;
    
    for(size_t i = 0; i < y; ++i)
    {
        value = x * temp + value;   //计算每次要相加的数字; 
        sum += value;   //数字相加的值; 
        temp *= 10;
    }
    
    return sum;
}

网友(3):

#include
#include
int main()
{
    int Sn=0,n,temp;
    int i,j;
    double k;
    printf("Please input n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        temp=0;
        for(j=0;j        {
            k=pow(10,j);
            temp=temp+2*k;
        }
        Sn=Sn+temp;
    }
    printf("Sn=%d\n",Sn);
    return 0;
}

网友(4):

这个很容易溢出哦,要小心

long sum = 0L;
long temp = 0L;
for(int i = 1; i <= n; ++i) {
  temp *= 10;
  temp += 2;
  sum += temp;
}