给定两个均不超过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变量中返回。
思路:
根据题意,可以用循环将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