100階層演算法

2021-06-22 18:35:45 字數 1111 閱讀 1561

//  還記得10進製的乘法麼?

// 567

// * 5

// -------

// 2835

// 用程式語言表示出來就是

// 當前的int a[4] =

// 然後從最低位開始用5去乘以每一位,少於10的部分就是這

// 個位新的值超過10的部分就是進製,加入他的前一位的結果

// 那麼從最低位開始a[0]*5=35,由於沒有進製所以a[0]=5, carry

// =3,a[1]*5=30,加上進製3=33,所以a[1] =3, carry=3,以此類推最

// 高位就是a[3] =2;所以我們的到的陣列就是a[4] =,結果

// 當然就是2835拉。

#include #define size 500 // size 500就可以表示結果在500*6=3000位以內的大整數

#define base 1000000 // 目前使用進製的基數,1000000進製,6位的底數可以處理1000以內的階乘

// 超過1000的話會溢位,因為最大的六位數

//乘以4位數可能超過32位整數的範圍

// 當處理大一點的階乘的話就要相應減小這個值

// 所以當你求1千萬的階乘的時候記得base是10,呵呵。

unsigned int a[size];

void jiechen(int n)

if(carry != 0) //最高位有進製就調整當前最高位

a[++max] = carry;

}

printf("%d!=", n); //以下是列印過程

printf("%d", a[max]); //最高位我們不列印前面的0,不然看起來不爽xd

for(i=max-1; i>=0; i--) //注意:是從高位開始列印的

printf("%06d", a[i]); //列印6位,注意要包括前面的0,還有修改了base的話記得改這裡!列印6位,不足的補0

printf("\n");

}int main()

數字階層和 遞迴演算法

題目 求1 2 3 20 和 分析 雙重for迴圈很簡單。重點分析下遞迴方法 當我們去求20 時可以理解為20 19 在理解為20 19 18 最後變為20 19 18 1 1的階乘和為1。從這裡可以看出遞迴的現象,定義遞迴開始和終止條件即完成了 package com.math.forth 求1 ...

CSS 7階層疊水平

1.層疊水平 當兩個元素層疊水平相同的時候,這時候就要遵循下面兩個準則 後來居上原則 誰 z index 大,誰在上的準則 層疊上下文,你可以理解為 js 中的作用域,乙個頁面中往往不僅僅只有乙個層疊上下文 因為有很多種方式可以生成層疊上下文,只是你沒有意識到而已 在乙個層疊上下文內,我們按照層疊水...

CSS 7階層疊水平

著名的7階層疊水平 stacking level 層疊上下文 background border 負z index block塊狀水平盒子 正常流失布局,非inline block,無position定位 static除外 float浮動盒子 無position定位 static除外 的float浮...