标题:输入整数n和a,输出S=a+aa+aaa+……+aa…a(n个a)的结果。(要求用递归函数实 ...
只看楼主
追梦人(婧)
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-9-19
结帖率:0
已结贴  问题点数:20 回复次数:6 
输入整数n和a,输出S=a+aa+aaa+……+aa…a(n个a)的结果。(要求用递归函数实现)
输入整数n和a,输出S=a+aa+aaa+……+aa…a(n个a)的结果。(要求用递归函数实现)
搜索更多相关主题的帖子: 要求 结果 函数 aaa 递归 
2019-09-19 20:46
niuniuchiniu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2019-8-10
得分:4 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int sum(int a, int n)
{
    if (n== 1)
    {
        return a;
    }
    else
    {
        return sum(a,n-1)+pow(a,n);
    }
}

void main()
{
    int a, n;

    printf("please input two integer");//没有对输入进行判断.

    scanf_s("%d%d", &a, &n);


    int c = sum(a, n);
    printf("%d", c);

    system("pause");
}
2019-09-20 01:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
为什么要用递归?除非迫不得已,否则不应该偷懒

程序代码:
#include <stdio.h>

static void PrintSum_( unsigned a, unsigned n, unsigned carry )
{
    if( n == 0 )
    {
        if( carry != 0 )
            printf( "%u", carry );
        return;
    }

    PrintSum_( a, n-1, (a*n+carry)/10 );
    putchar( (a*n+carry)%10 + '0' );
}

void PrintSum( unsigned a, unsigned n )
{
    // 如果 a==0 或 n==0 输出 0
    // 如果 a>9 或 n过大 报错
    // 以上略

    PrintSum_( a, n, 0 );
    putchar( '\n' );
}

int main( void )
{
    PrintSum( 1, 1 ); // 1
    PrintSum( 1, 2 ); // 12

    PrintSum( 9, 1 ); // 9
    PrintSum( 9, 2 ); // 108
    PrintSum( 9, 3 ); // 107

    PrintSum( 9, 99 ); // 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
}

2019-09-20 08:51
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:4 
程序代码:
#include <stdio.h>  

 main()
{
    int a, n;
    long f, s;
    int i;
    printf("请输入a、n(以空格分隔):");
    scanf("%d%d", &a, &n);
     f = s = 0;
    for(i=0; i<n; i++)
    {
        f = f * 10 + a;
        s += f;
    }
    printf("a + aa + aaa + ... aa..a = %ld\n", s);
}
2019-09-20 09:40
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:4 
int sum(int a, int n)
{
    if (!n)return 0;
    return sum(a * 10 + a%10, n - 1)+a;
}
int main()
{
    printf("%d\n", sum(3, 5));
    return 0;
}

能编个毛线衣吗?
2019-09-20 10:14
沈和
Rank: 2
等 级:论坛游民
威 望:5
帖 子:22
专家分:81
注 册:2019-8-26
得分:4 
程序代码:
#include <stdio.h>
#include <stdlib.h>

unsigned sa(unsigned a, unsigned n) {
    if (!n) {
        fputs("It makes no sense when n is 0\n", stderr);
        exit(1);
    }
    if (1 == n)
        return a;
    else
        return a + sa(a * 10 + a % 10, n - 1);
}

int main(void) {
    printf("7 + 77 + 777 + 7777 = %d\n", sa(7, 4));
    sa(9, 0);
    return 0;
}


[此贴子已经被作者于2019-9-21 13:01编辑过]

2019-09-20 19:24
程序猿1988
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2019-8-29
得分:4 
#include"stdio.h"
int main()
{
    int i,sum=0,n,a;
    scanf("%d%d",&a,&n);
    int   b=a;
    for(i=1;i<=n;i++)
    {   
        sum+=a;
        a=a*10+b;
    }
    printf("sum=%d\n",sum);
    return 0;
}
2019-09-24 13:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496914-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.459781 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved