给定两个均不超过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;
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐