史豐收速演算法的革命性貢獻是:從高位算起,**進製。不需要九九表,徹底顛覆了傳統手算!
速算的核心基礎是: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
這是藍橋杯上面的乙個題目,我覺得這是乙個算乘法的好方法,就直接從最高位開始算,剛開始沒怎麼看懂,後來反覆讀程式就懂了一點,其實原理很簡單,1/7=0.142857…,左右乘7然後把然後把右邊的小數整數化,就得到10000….=7*142857…,也就是說乙個數如果超過142857…,就超過10000….,就相當於相乘時超過10是乙個道理,要向前進一位,然後就在首位列印一,然後每一位奇偶乘7符合上面的規律,最後貼上一段**。
#include
#include
#include
using
namespace
std;
int ge_wei(int a)
//計算進製
int jin_wei(char* p)
; char buf[7];
buf[6] = '\0';
strncpy(buf,p,6);
int i;
for(i=5; i>=0; i--)
}return0;}
//多位數乘以7
void f(char* s)
printf("\n");
}int main()
1004 史豐收速算
題目 史豐收速演算法的革命性貢獻是 從高位算起,進製。不需要九九表,徹底顛覆了傳統手算 速算的核心基礎是 1位數乘以多位數的乘法。其中,乘以7是最複雜的,就以它為例。因為,1 7 是個迴圈小數 0.142857.如果多位數超過 142857.就要進1 同理,2 7,3 7,6 7 也都是類似的迴圈小...
藍橋 史豐收速算
史豐收速演算法的革命性貢獻是 從高位算起,進製。不需要九九表,徹底顛覆了傳統手算 速算的核心基礎是 1位數乘以多位數的乘法。其中,乘以7是最複雜的,就以它為例。因為,1 7 是個迴圈小數 0.142857.如果多位數超過 142857.就要進1 同理,2 7,3 7,6 7 也都是類似的迴圈小數,多...
史豐收速算 藍橋杯
史豐收速演算法的革命性貢獻是 從高位算起,進製。不需要九九表,徹底顛覆了傳統手算 速算的核心基礎是 1位數乘以多位數的乘法。其中,乘以7是最複雜的,就以它為例。因為,1 7 是個迴圈小數 0.142857.如果多位數超過 142857.就要進1 同理,2 7,3 7,6 7 也都是類似的迴圈小數,多...