c语言 特殊a串数列求和

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。

输入格式:
输入在一行中给出不超过9的正整数a和n。

输出格式:
在一行中按照“s = 对应的和”的格式输出。

输入样例:
2 3

      
    
输出样例:
s = 246

我的答案

#include <stdio.h>
int main()
{ 
    int a, n;
    int s=0, item=0;//不要忘了初始值
    
    scanf("%d %d", &a, &n);
    for (int i = 0; i < n; i++)
    { 
        item = 10 * item + a;
        s += item;
    }
    printf("s = %d",s);
    return 0;
}

这里还可以用 函数

#include <stdio.h>
int num(int a,int n)
{ 
    int item=0;
    for (int i = 0; i < n; i++)
    { 
        item = 10 * item + a;
    }
    return item;
}
int main()
{ 
    int a, n;
    int s=0;
    
    scanf("%d %d", &a, &n);
    for (int i = 1; i <= n; i++)//这里一定要注意i不能从1开始,因为这里i如果和上面函数一样的话,不能输出
    { 
        s += num(a,i);
    }
    printf("s = %d",s);
    return 0;
}

还可以用数组

#include<stdio.h>
void the_num(int a, int n,int p[])
{ 
	p[0] = a;
	for (int i = 0; i < n-1; i++)//这里i的范围要小于n-1,不能小于n。因为小于n会出现数组越界。p[0]保存的是第一个数
	{ 
		p[i + 1] = p[i] * 10 + a;
	}
}
 
 
int main()
{ 
 
	int p[9] = {  0 };
	int a, n;
	int s = 0;
	scanf("%d %d", &a, &n);
	
	the_num(a, n, p);
	for (int i = 0; i < n; i++)
	{ 
		s = s + p[i];
	}
	printf("s = %d\n", s);
	return 0;
}
    原文作者:inooll
    原文地址: https://blog.csdn.net/inooll/article/details/104905875
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞