只是在一次上課中聽到老師說起用c實現從1到100萬的累加,於是再也忘不掉2333
於是作為小小白的我開始了一段艱辛的學習歷程
看懂本文所需的主要知識儲備:
1.if判斷語句
2.陣列
3.for迴圈和迴圈鑲嵌結構
話不多說,在此是我的思考與學習過程,具體分為三個步驟
這個應該很好理解,只需要簡單利用數學公式即可
/
*從1到n的累加*
/#include
#include
intmain()
實現這一步之後,我們就大概有乙個基本思路了。
先po上我學習大數乘法參考的文章,講的很細,適合小小白
我學習大數乘法的文章
但是我們並不能直接生搬硬套,我們一定要學會其中的各種技巧與演算法思路,再將它們合適地運用在我們的核心式子中sum = (n+1)*n/2。
(1)實現大數n*n
#include
#include
#include
//定義全域性變數!!!
char n[
100]
;int x[
110]
, z[
210]
;int
main()
for(i =
0; i < len1; i++
)//模擬筆算豎乘,進製在下一步統一處理
}for
(i =
0; i <
200; i++
)//進行進製處理
}
在這裡因為我們是兩個相同大數的相乘所以只需定義乙個字串陣列,其他的都可以套用。
標註重點理解的那一行**,如果小小白們不理解,可以先手算一些數字,認真體會筆算步驟,因為這種方法就是在模擬筆算的過程。
(2)大數加法實現n*n +n
現在z[210]是大數n*n,x[110]是大數n。相信對於大數乘法中模擬筆算的理解,我們很快能想到我們只要實現倒序的每一位的相加再進製就可以了。
還需要注意的是,這裡x與z陣列大小不相等,那麼我們只需要將更小的陣列處理完,另乙個陣列的餘下部分不做處理即可。
//實現大數n*n + n
for(i =
0; i <
200; i++)}
}
(這裡的進製處理其實只是上步進製處理的簡化)
(3)實現除2
到這裡已經快要接近勝利了,這一步其實也是沿用上述模擬筆算的思想,應該沒有什麼理解難度。(這個並不屬於大數除法)
//實現n*(n+1)/2
for(i =
200; i >=
0; i--
)//模擬筆算做除法
其實是套用,haha。
我的理解是把第乙個非零數字之前的所有的z[i]=0儲存在迴圈裡,再輸出餘下的數字。
//輸出時的處理
for(i =
200; i >=
0; i--
)//把第乙個非零數之前的所有0去掉
printf
("the sum is ");
for(
; i >=
0; i--
)//倒序輸出
printf
("\n");
system
("pause");
}
大功告成!
以下是完整**:
#include
#include
#include
//定義全域性變數!!!
char n[
100]
;int x[
110]
, z[
210]
;int
main()
for(i =
0; i < len1; i++
)//模擬筆算豎乘,進製在下一步統一處理
}for
(i =
0; i <
200; i++
)//進行進製處理
}//實現大數n*n + n
for(i =
0; i <
200; i++)}
}//實現n*(n+1)/2
for(i =
200; i >=
0; i--
)//模擬筆算做除法
//輸出時的處理
for(i =
200; i >=
0; i--
)//刪除0的字首
printf
("the sum is ");
for(
; i >=
0; i--
)//倒序輸出
printf
("\n");
system
("pause");
}
小小白的第一篇原創,請多多支援。
如有錯誤請大神們不吝賜教!先謝過!
《從一到無窮大》選談 思維的尺度
這個月月初就開始看 從一到無窮大 花了接近兩個星期才看完。這確實是一本讓人放不下手的好書。考慮到我的閱讀速度,乙個多星期一本書已經近乎神速了。在這本書裡我經常會看到一些有趣的數學知識,前段時間我還寫過書裡提到的乙個有趣的東西 環面上的染色問題反而比平面上的 四色問題 更加簡單。這種例子並不罕見,很多...
從乙個新的起點,重識C語言
作為計算機類專業的第一門課程,c語言有著千千萬萬的學習者和使用者,也從側面證明c語言的實用和強大。而作為一名計算機專業的在讀學生,處在關鍵的學習階段,再次深入學習並熟練掌握c語言成為眼下最重要的事。博主的第一身份是it發燒友,座標西安。因為對it的熱愛,報考志願時,博主毅然將6個專業志願全部填寫為計...
乙個小白的,C語言初學總結
接觸c語言也有很長時間了,但是一直沒有系統的學習過,經過這段時間的系統學習,讓我對c語言了乃至對程式設計有了新的認識。下面整理一下這段時間的所學,作以總結。首先是,計算機語言的靈魂 演算法。就我自己的理解,演算法可以稱之為程式設計思維的產物,適用於任何語言,只有掌握了程式設計思維,自己根據具體實際情...