美文网首页算法
递归-3 计算多个数字

递归-3 计算多个数字

作者: 路灯下的黑猫H | 来源:发表于2017-03-16 15:31 被阅读0次

    //

    //ViewController.m

    //CocoTest_1

    //

    //Created by S u p e r m a n on 2017/3/14.

    //Copyright © 2017年张浩. All rights reserved.

    //

    #import"ViewController.h"

    - (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    printf("sum = %d",numOfSum(4,5));

    }

    /**

    *

    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时

    共有5个数相加),几个数相加有键盘控制。

    f(n) = f(n-1) + aa...a(说明这里有n个a);

    */

    intnumOfSum(intn,intnum){

    if(n ==1) {

    returnnum;

    }else{

    returnnumOfSum(n-1,num) + n_mum(n,num);

    }

    }

    intn_mum(intn,intnum) {

    intsum =0;

    while(n>0) {

    sum = sum*10+num;

    n--;

    }

    returnsum;

    }

    /**

    *

    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时

    共有5个数相加),几个数相加有键盘控制。

    f(n) = f(n-1) + aa...a(说明这里有n个a);

    f(4,2) = f(3,2) + 2222 = f(3,2) + (f(3,2)- f(2,2))*10 + 2;

    f(n,k) = f(n-1,k) + (f(n-1,k)-f(n-2,k))*10 + k

    */

    // n: n个数字k:1~9的数

    inttest2(intn,intk) {

    if(n ==0) {

    return0;

    }

    if(n ==1) {

    returnk;

    }

    returntest2(n-1, k) + (test2(n-1, k)-test2(n-2, k))*10+ k;

    }

    @end

    相关文章

      网友评论

        本文标题:递归-3 计算多个数字

        本文链接:https://www.haomeiwen.com/subject/llrjnttx.html