史丰收速算

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

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

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

时间: 2024-11-08 17:25:41

史丰收速算的相关文章

代码赏析——史丰收速算

/* 标题:史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位. 不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法. 其中,乘以7是最复杂的,就以它为例. 因为,1/7 是个循环小数:0.142857..., 如果多位数超过 142857...,就要进1 同理,2/7, 3/7, ... 6/7 也都是类似的循环小数, 多位数超过 n/7,就要进n 下面的程序模拟了史丰收速算法中乘以7的运算过程. 乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取

蓝桥杯:史丰收速算

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;}

2014年第五届蓝桥杯试题C/C++程序设计B组——史丰收速算

题目描述 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法. 其中,乘以7是最复杂的,就以它为例. 因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1 同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n 下面的程序模拟了史丰收速算法中乘以7的运算过程. 乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位. 乘以 7 的

早教资料《小速算家—一分钟速算》

早教资料<小速算家-一分钟速算>是速算大师周根项老师三十多年潜心研究的成果.他用独创的 "手指法"."转换法"."万能法"等简单.易学.实用的趣味运算方式,帮助孩子彻底学习没兴趣.做 题速度慢.计算总出错.考试总丢分等学习问题.<小速算家-一分钟速算>通过手.心.脑联合并激发孩 子超常思维能力:以口诀.动画.授课视频等多种信息刺激为手段,提高孩子思维的逻辑性.行为的条理性 及灵敏性能最终达到开发孩子智力,增加学习兴趣.提升

hdu1427 速算24点

</pre><pre> //#pragma comment(linker, "/STACK:102400000,102400000") //HEAD #include <cstdio> #include <cstring> #include <vector> #include <iostream> #include <algorithm> #include <queue> #include

Problem A: 速算24点

Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括 A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13).要求只用'+','-','*','/'运算符以及括号改变运算 顺序,使得最终运算结果为24(每张牌必须且仅能用一次).游戏很简单,但遇到无解的情况往往让人很郁闷.你的任务就是针对每一组随机产生的四张牌,判断 是否有解.我们另外规定,整个计算过程中都不能出现小数. Input 输入数据占一行,给定四张牌. Output 如果有解则输出

下坠的小鸟(flappy bird)速算版

下坠的小鸟速算版是根据著名的像素鸟(flappy bird)改编而成的一款运行在pc web上的游戏,它跟传统的玩法稍有不同,你必须时刻计算当前数字的倍数,以便为通过下一个数字缺口做准备,而不仅仅只是通过当前缺口.这不仅考验着您的速算功力,还对您的兼顾能力发起了挑战.ready? Go! http://sentsin.com/hello/flappy/ 下坠的小鸟(flappy bird)速算版,布布扣,bubuko.com

Hdoj 1427 速算24点 【DFS】

速算24点 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3574    Accepted Submission(s): 869 Problem Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13).要求只用'+','-','

速算24点问题

问题: 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13).要求只用'+','-','*','/'运算符以及括号改变运算顺序,使得最终运算结果为24(每个数必须且仅能用一次).游戏很简单,但遇到无解的情况往往让人很郁闷.你的任务就是针对每一组随机产生的四张牌,判断是否有解.我们另外规定,整个计算过程中都不能出现小数. 回答: #include<iostream>      #include<cstdi