求n个a构成的和,两个数均不超过9

给定两个均不超过9的正整数a,求n个a之和
函数接口定义
int fn(int a,int n)
int SumA(int a,int n)

#include <iostream>
using namespace std;
int fn(int a,int n)
{
    int r = 0;
    for(int i=1;i<=n;i++)
        r = r*10 + a;
    return r;
}
int SumA(int a,int n)
{
    int sum = 0;
    for(int i=1;i<=n;i++)
        sum += fn(a,i);
}
int main()
{
    int a,n;
    cin>>a>>n;
    cout<<SumA(a,n)<<endl;
}

以下是使用C++编写的函数:

int fn(int a, int n) {
    if (a > 9 || n <= 0) { // 如果a超过上限或n小于等于0,返回-1表示无效输入
        return -1;
    }
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum = sum * 10 + a; // 每次循环将a加入到sum的个位上
    }
    return sum;
}

int SumA(int a, int n) {
    if (a > 9 || n <= 0) { // 如果a超过上限或n小于等于0,返回-1表示无效输入
        return -1;
    }
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += fn(a, i); // 将前i个a相加
    }
    return sum;
}

这个程序中,fn函数用来求出一个由n个a组成的数。例如,当a=3,n=4时,fn(3, 4)返回3333。

SumA函数则用来求出前n个由a组成的数之和。例如,当a=3,n=4时,SumA(3, 4)先调用fn(3, 1)得到3,再调用fn(3, 2)得到33,然后调用fn(3, 3)得到333,最后调用fn(3, 4)得到3333,将这四个数相加得到9999。

当a超过9或n小于等于0时,这两个函数都会返回-1表示无效输入。


int fn(int a, int n) {
    if (n == 1) return a;
    int res = fn(a, n-1);
    return res * 10 + a;
}

int SumA(int a, int n) {
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += fn(a, i);
    }
    return sum;
}

函数fn用于计算一个数a重复n次后的值,比如fn(3, 4)返回3333。函数SumA则是求n个a之和,它使用循环调用fn来计算每个数的值,并将它们累加到sum变量中返回。

以下内容部分参考ChatGPT模型:


思路:
根据题意,可以用循环将a加n次即可。

代码示例:

int SumA(int a, int n) {
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += a;
    }
    return sum;
}

例子:

int main() {
    int a = 2, n = 3;
    int sum = SumA(a, n);
    cout << "Sum of " << n << " " << a << "'s is: " << sum << endl;
    return 0;
}

输出:

Sum of 3 2's is: 6

如果我的建议对您有帮助、请点击采纳、祝您生活愉快