蓝桥杯 历届试题 串诸位和
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>
给定一个由数字组成的字符串,我们希望得到它的各个数位的和。
比如:“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>
相关文章推荐
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- 百度地图Web API学习
- 43.https自建证书在 AFN中的设置
- 阿里前端电面
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- 应用前后台切换的回调方法实现
- Atitit.复合文档的格式 标准化格式
- 学习进度表
- 【解题报告】BestCoder Round #75
- 浏览器检测
- visual studio code基础
- Spring JdbcTemplate实现数据库操作
- 认识Elasticsearch
- ODI 系列学习--整体架构概念
- Atitit.复合文档的格式 标准化格式
- Atitit.复合文档的格式 标准化格式
- 用消息机制解耦Activity跳转
- 华为:十六进制转换成十进制
- Spring的LocalSessionFactoryBean类