标题:史丰收速算

史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!

速算的核心基础是: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;
}

注意:通过浏览器提交答案。只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字)

分析:这个题目我们从公式中看出超过这些数字,规定了进位

"142857",
        "285714",
        "428571",
        "571428",
        "714285",
        "857142"

分析:程序中我们发现,没有规定buf小于这些数字的情况,我们需要添加的就是这个部分,由于if(r<0) return i+1;所以r>0,进位比规定的进位小1,就得出了答案 

答案:if(r>0) return i; 

蓝桥杯2014年(第5届)省赛b组c/c++ 史丰收速算相关推荐

  1. 蓝桥杯2015年第六届C/C++ B组省赛习题题解

    目录 第一题:奖券数目 第二题:星系炸弹(日期计算) 第三题:三羊献瑞(全排列) 第四题:格子中输出 第五题:九数组分数(dfs) 第六题:加法变乘法(枚举) 第七题:牌型种数(dfs+dp) 第八题 ...

  2. [蓝桥杯]2019年第十届省赛真题C/C++ B组 填空+大题

    第十届蓝桥杯省赛题目 填空A:组队 填空B:年号字串 填空C:数列求值 填空 D: 数的分解 填空 E: 迷宫 大题F:特别数的和 大题G:完全二叉树的权值 大题H:等差数列 大题I-后缀表达式 填空 ...

  3. 【蓝桥杯嵌入式】第六届省赛程序题项目代码及讲解

    文章目录 蓝桥杯嵌入式第六届省赛 介绍 配置 RTC配置 配置ADC 配置串口: LED和按键的配置 E2PROM 头文件 初始化 串口测试 LCD测试 RTC测试 ADC测试 按键和LED测试 E2 ...

  4. 蓝桥杯单片机第十四届省赛题目和程序答案

    目录 1.前言 2.题目 3.程序架构 3.1 display.c 3.2 ds1302.c 3.3 iic.c 3.4 onewire.c 3.5 main.c 主函数文件 3.6 环境配置 4. ...

  5. 题目 2311: 蓝桥杯2019年第十届省赛真题-Fibonacci 数列与黄金分割

    题目 Fibonacci 数列是非常著名的数列: F[1] = 1,F[2] = 1, 对于 i > 3,F[i] = F[i − 1] + F[i − 2] Fibonacci 数列有一个特殊 ...

  6. 蓝桥杯嵌入式STM32G431——第七届省赛真题模拟液位检测告警系统

    第七届省赛真题模拟液位检测告警系统 第七届省赛真题 主函数部分的代码功能实现(不包含各模块初始化代码) 第七届省赛真题 主函数部分的代码功能实现(不包含各模块初始化代码) #include " ...

  7. 第八届蓝桥杯(软件类)C++省赛A组真题题解

    文章目录 题目链接 A组真题 题目结构 第一题 迷宫 第二题 跳蚱蜢 第三题 魔方状态 第四题 方格分割 第五题 字母组串 第六题 最大公共子串 第七题 正则问题 第八题 包子凑数 第九题 分巧克力 ...

  8. 【第十四届蓝桥杯】第三期官方校内模拟赛B组C++题解(已修正完毕,均可AC100%)

    文章目录 写在前面 一.字母数(AC100%) 题目描述 解题报告 1.大体思路 2.代码详解 二.列名(AC100%) 题目描述 解题报告 1.大体思路 2.代码详解 三.特殊日期(AC100%) ...

  9. 蓝桥杯2019年第十届国赛真题-大胖子走迷宫

    题目 题目链接 题解 BFS. 整体思路:将位置信息和时刻信息放入队列,根据时刻信息判断当前时刻小明的大小,如果大小为1×11×11×1则不能原地停留,因为没意义啊,停留是为了让自己的肚子减小,但是1 ...

  10. 蓝桥杯2022年第十三届省赛真题-纸张尺寸

    题目描述 在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取下整(实际裁 ...

最新文章

  1. 霍夫变换(Hough Transform):霍夫变化在图像处理以及点云处理中的直线检测应用
  2. Java并发编程:线程封闭和ThreadLocal详解
  3. Unix系统编程()虚拟内存管理
  4. [转] MySQL和MongoDB设计实例对比
  5. 如何操作提升手机端网站的排名优化?
  6. 8.0强行转换后变成了7_【建筑通】钻孔灌注桩后注浆施工工艺介绍
  7. 为什么标准C++中两个直接字符串常量不能相加
  8. 算法之排序算法-shell排序(交换法)
  9. css5最新灵敏度,影响灵敏度的因素 - nakcy0009的专栏 - 52RD博客_52RD.com
  10. linux线程组和进程区别,Linux中进程和线程之间的区别
  11. PCI Geomatica 操作视频专辑
  12. 你租的房子遇 “坑” 了么?
  13. 凸优化1——仿射集、凸集、锥
  14. Alpha阶段测试报告
  15. 一个简单的Appium测试(Python语言)
  16. coap python_Python coap
  17. java 读取csv文件乱码_java读取csv文件乱码怎么解决
  18. C盘数据丢失恢复详解和注意事项
  19. 计算机伦理的发展,人工智能技术发展的伦理困境研究
  20. 优酷网视频播放器站外调用详解

热门文章

  1. 企业内部知识共享平台的好处-以Confluence为例
  2. cra脚手架安装typescript
  3. 深入理解Java虚拟机-Java内存区域与内存溢出异常
  4. lua入门之二table
  5. 神奇的e——Python编程算e
  6. Linux中巧用zip命令压缩和解压缩文件
  7. 中国网络游戏行业发展模式创新与投资前景调研报告2021-2027年
  8. poi-tl 循环表格合并重复项
  9. qq传输文件为什么服务器忙,win10系统qq接收文件慢一直显示传输连接中的教程
  10. Scratch(三十八):八大行星