题目:

史丰收速算
史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!
速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1
同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n
下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以 7 的进位规律是:
满 142857... 进1,
满 285714... 进2,
满 428571... 进3,
满 571428... 进4,
满 714285... 进5,
满 857142... 进6
请分析程序流程,填写划线部分缺少的代码。//计算个位
int ge_wei(int a)
{
if(a % 2 == 0)
return (a * 2) % 10;
else
return (a * 2 + 5) % 10;
}  //计算进位
int jin_wei(char* p)
{
char* level[] = {
"142857",
"285714",
"428571",
"571428",
"714285",
"857142"
};  char buf[7];
buf[6] = '\0';
strncpy(buf,p,6);  int i;
for(i=5; i>=0; i--){
int r = strcmp(level[i], buf);
if(r<0) return i+1;
while(r==0){
p += 6;
strncpy(buf,p,6);
r = strcmp(level[i], buf);
if(r<0) return i+1;
______________________________;  //填空
}
}  return 0;
}  //多位数乘以7
void f(char* s)
{
int head = jin_wei(s);
if(head > 0) printf("%d", head);  char* p = s;
while(*p){
int a = (*p-'0');
int x = (ge_wei(a) + jin_wei(p+1)) % 10;
printf("%d",x);
p++;
}  printf("\n");
}  int main()
{
f("428571428571");
f("34553834937543");
return 0;
} 

答案:if(r>0) return i (感觉有点难)

代码:

/*
史丰收速算
史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!
速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1
同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n
下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以 7 的进位规律是:
满 142857... 进1,
满 285714... 进2,
满 428571... 进3,
满 571428... 进4,
满 714285... 进5,
满 857142... 进6
请分析程序流程,填写划线部分缺少的代码。
*/#include <bits/stdc++.h>//计算个位
int ge_wei(int a)
{  if(a % 2 == 0)  return (a * 2) % 10;  else  return (a * 2 + 5) % 10;
}  //计算进位
int jin_wei(char* p)
{  char* level[] = {  "142857",  "285714",  "428571",  "571428",  "714285",  "857142"  };  char buf[7];  buf[6] = '\0';  strncpy(buf,p,6);  int i;  for(i=5; i>=0; i--){  int r = strcmp(level[i], buf);  if(r<0) return i+1;  while(r==0){  p += 6;  strncpy(buf,p,6);  r = strcmp(level[i], buf);  if(r<0) return i+1;  if(r>0) return i;  //填空  }  }  return 0;
}  //多位数乘以7
void f(char* s)
{  int head = jin_wei(s);  if(head > 0) printf("%d", head);  char* p = s;  while(*p){  int a = (*p-'0');  int x = (ge_wei(a) + jin_wei(p+1)) % 10;  printf("%d",x);  p++;  }  printf("\n");
}  int main()
{  f("428571428571");  f("34553834937543");  return 0;
} 

2014年第五届蓝桥杯C++B组第四题:史丰收速算相关推荐

  1. 蓝桥杯第五届C/C++A组第四题 史丰收速算

    标题:史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法.其中,乘以7是最复杂的,就以它为例.因为,1/7 是个循 ...

  2. 第五届蓝桥杯【省赛试题4】史丰收速算

    题目描述: 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法. 其中,乘以7是最复杂的,就以它为例. 因为,1/7 是个循 ...

  3. 征战蓝桥 —— 2014年第五届 —— C/C++A组第4题——史丰收速算

    题目 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法.其中,乘以7是最复杂的,就以它为例.因为,1/7 是个循环小数:0. ...

  4. 第五届蓝桥杯决赛B组C/C++——Log大侠

    第五届蓝桥杯决赛B组C/C++--Log大侠 标题:Log大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠. 一天,Log大侠的好友 drd 有一些整数序列需要变换 ...

  5. 2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  6. 2016年 第07届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  7. 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结

    ​​​​​蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 ...

  8. 2018年 第09届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  9. 2019年 第10届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  10. 2020年 第11届 蓝桥杯 Java B组 决赛真题详解及小结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

最新文章

  1. Python:Spider
  2. java非打印字符,使用Java正则表达式匹配不可打印字符
  3. Android studio3.1卡顿严重
  4. Python学习笔记:数据库2
  5. key位置 win10生成的ssh_Windows 10:如何在OpenSSH中生成SSH密钥
  6. 字节跳动---毕业旅行问题
  7. a12处理器怎么样_iPhone运行安卓系统卡成翔,苹果A系处理器彻底跌落神坛!
  8. SDN:势不可挡的网络演进大潮
  9. 增强 扫描王 源码_CamScanner扫描全能王v5.15.3 安卓版
  10. 学编程脚本 android,Android开发之--脚本编程
  11. android 计时器函数,Android Chronometer控件实现计时器函数详解
  12. 【免费域名】freenom免费申请域名步骤
  13. 到底什么是索引???
  14. 如何判断用户输入的邮箱格式是否正确?
  15. 持续集成:通过Jenkins API创建项目和节点
  16. onenet云平台使用_使用平台
  17. linux 读取 SOC寄存器(物理内存)的机制方法
  18. 交通·未来第2期:深度交通感知: 从区域流量预测到在线OD预测
  19. springcloud微服务国际化
  20. 5 大 DevOps 工具,看看你用过几个?

热门文章

  1. 程序员的奋斗史(三十二)——人在囧途之应聘篇(二)
  2. Java中常见常用的类
  3. html背景图片可以设置边框吗,css边框图片怎么设置?
  4. sys matlab,matlab中sys什么意思
  5. Q3中国网游业观察:腾讯网易春风得意
  6. 各代iphone尺寸_iPhone12大小尺寸是多少?四款iPhone12系列尺寸对比长宽高
  7. openGL实现太阳系行星系统
  8. SFP+光纤模块使用
  9. 前端-鼠标经过后图标变色
  10. vue中使用快递鸟打印订单