蓝桥杯 历届试题 串诸位和

来源:互联网 发布:敬请悉知是什么意思 编辑:程序博客网 时间:2024/06/03 21:58

                                              串逐位和

 

给定一个由数字组成的字符串,我们希望得到它的各个数位的和。

比如:“368” 的诸位和是:17

这本来很容易,但为了充分发挥计算机多核的优势,小明设计了如下的方案:

int f(char s[], int begin, int end)

{

int mid;

if(end-begin==1) return s[begin] - '0';

mid = (end+begin) / 2;

return ____________________________________;  //填空

}

int main()

{

char s[] = "4725873285783245723";

printf("%d\n",f(s,0,strlen(s)));

return 0;

}

你能读懂他的思路吗? 请填写划线部分缺失的代码。

注意:只填写缺少的部分,不要填写已有代码或任何多余内容。

分析:二分查找,递归搜索

<span style="font-size:32px;">#include<stdio.h>#include<string.h>int f(char s[], int begin, int end){    int mid;    if(end-begin==1)        return s[begin] - '0';    mid = (end+begin) / 2;    return f(s,begin,mid)+f(s,mid,end); //填空}int main(){    char s[] = "4725873285783245723";    printf("%d\n",f(s,0,strlen(s)));    return 0;}</span>


0 0
原创粉丝点击