递归-3 计算多个数字

//

//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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,360评论 0 33
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,548评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 6,030评论 0 2
  • 雅思考试四项当中,最具有技术含量的考验项就是写作,没有词汇量你写不了一篇完整的文章,没有素材积累你写不了一篇有深度...
    高鸟知更阅读 3,671评论 0 1
  • 写了两篇教学风格和文艺风格文,打算换换风格,写写我热衷的一项游戏:狼人杀:否则怎么对得起“云淡疯卿”里的疯字。 每...
    云淡疯卿阅读 5,543评论 0 7

友情链接更多精彩内容