标题:史丰收速算
史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!
速算的核心基础是: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;elsereturn (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

思路:leve[i]就相当于满leve[i]进i+1,因为填空所在的那段是判断条件为r==0的循环,所以是在当前buff段与某个leve相等的情况下,看下一个buff段进位多少,那么r<0就是进位i+1,r>0就是进位i,r==0就继续看下一段buff。

第五届蓝桥杯省赛C++B组 史丰收速算相关推荐

  1. 第五届蓝桥杯国赛C++B组 Log大侠

    标题:Log大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠. 一天,Log大侠的好友 drd 有一些整数序列需要变换,Log大侠正好施展法力... 变换的规则是: ...

  2. 蓝桥杯_C语言_本科B——史丰收速算

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

  3. 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)

    [写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...

  4. [第五届蓝桥杯省赛C++A/B组]蚂蚁感冒

    来源: 第五届蓝桥杯省赛C++A/B组 算法标签:数学 题目描述 长 100 厘米的细长直杆子上有 n 只蚂蚁. 它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒. 当 ...

  5. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

  6. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  7. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  8. 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解

    第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解(非满分) import java.util.Scanner; public class Main {public static void main( ...

  9. [第四届蓝桥杯省赛C++B组]省赛全题目题解

    文章目录 快速分支通道 1.高斯日记 来源: 第四届蓝桥杯省赛C++A/B组 算法标签 模拟 题目描述 输出格式 思路 CPP代码 2.马虎的算式 题目描述: 算法标签: 枚举 题目答案: 题目思路: ...

最新文章

  1. android 手势放缩_AIR Android:放大与缩小手势
  2. 践行RONG理念,2018年清华数据院科研成果一隅
  3. AI产业投融资情况回顾、中美科技巨头AI产业投资布局以及领先投资机构AI产业投资布局...
  4. 如果你在2018面试前端,那这篇文章最好看一看!
  5. 实验3 动态规划(0/1背包)
  6. spring整合mongodb集群
  7. Madagascar的宏定义函数--判断整数的奇偶性函数
  8. 【java学习之路】(数据结构篇)004.递归和二叉搜索树
  9. Redis多线程执行 -- 过程分析
  10. clockworkmod CWM简单介绍
  11. Java实现中英文词典功能
  12. MikuMikuDance:渲染扩展《2》
  13. linux 配置思科路由器,思科路由器配置帧中继基本命令
  14. day02-08 python基础语法
  15. 华为机试4.20:按照路径替换二叉树
  16. 射频百科 | 限幅器的使用指南
  17. 程序员的奋斗史(二十八)——寒门再难出贵子
  18. MySQL是做什么的
  19. greasemonkey_Google Chrome浏览器中的Greasemonkey脚本入门指南
  20. POJ 2886:Who Gets the Most Candies?

热门文章

  1. 【idea】idea常用快捷键
  2. Python 返回值为函数时的布尔值
  3. ios iphone 图标,启动页面类型,尺寸
  4. 裁员、山寨、氪金,游戏行业的破局之道在哪?
  5. php解压程序——unzip6.0的使用,如何使用unzip命令解压缩文件
  6. 动态链接库的生成和使用,从入门到精通
  7. Jdbc工具类的打包(包含jar包分享)
  8. 【微信小程序】checkbox,radio的样式修改
  9. 百度官方:网站快照的更新频率与权重没任何关系
  10. Sublime Text (3103版本可用) 注册码 License Key