您的位置:首页 > 其它

蓝桥杯 历届试题 串诸位和

2016-03-17 19:56 183 查看
                                              串逐位和

 

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

比如:“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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: