陷阱题:输入两个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。

本文介绍了如何解决一道编程陷阱题,即求输入两个正整数 a 和 n 的序列和 a+aa+aaa+...+aan。题目中提到需要定义并调用函数 fn(a,n),该函数返回 a 的 n 位累加值。讨论了输入数可能包含多位数的情况,并简单阐述了函数的分类和定义方法,强调了函数定义前需先声明,并以一个返回多位数累加和的函数为例进行了说明。" 132363593,17869893,VB+SQL职工考勤管理系统设计与实现,"['数据库', 'VB+ACCESS', 'C/S模式', 'Visual Basic', 'SQL']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天看到一个题觉得有点意思,不仔细想一下就会掉进沟里。
正好这几天也学习了调用函数,就借这道题说一下。
输入两个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。要求定义并调用函数 fn(a,n),
它的功能是返回 aa…a(n 个 a)。例如 fn(3,2)的返回值是 33。
输入输出示例:
Input a: 8
Input n: 5
sum=98760
刚看题时,可能觉得像题中说的那样,随便输入一个数,就可以了。如果这样的话,那可能就没想到,输入的数不一定是个位数,可能是两位数,三位数甚至是更多位的数,那么这时就需要先考虑输入数的位数,比如输入20,那么下一个数就应该是2020,所以这道题的就应该包括判断位数的过程。
用上函数调用的话:

#include<stdio.h>
int fn(int a, int n);//自定义一个函数,如果紧接着是自定义函数的函数体,那么最后的**;**可以去掉。这里没这样做。
int main()
{
    int a,n,sum,i;
    sum=0;
    printf("Input a:");
    scanf("%d",&a);
    printf("Input n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
       sum=sum+fn(a,i);/*先对sum赋值0,便于对数累加。然后调用函数fn(),fn(int a, int i)中的**i**是因为fn()
返回的数是n个a,所以每次返回的值是不同的。*/
    }
    printf("sum=%d",sum);
    return
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值