求流程圖正整數有可能可以被表示為nn2個連續正

2021-05-14 18:51:52 字數 962 閱讀 5862

1樓:過去細節回憶

設待測資料為n

(使用迴圈巢狀結構,共內外兩個迴圈。)

裡面的那個迴圈負責不斷試探:

從2個連續整數的累加值(該組連續值從某個整數值a開始),到n個連續整數累加值是否等於n。比如:從試探1+2開始,然後試探1+2+3,然後1+2+3+4,一直試探到1+2+3+……+n。

(此時該組連續值是從1開始的,即a=1。)連續整數用高斯求和公式,不用再構建迴圈結構。

外面那個迴圈負責控制初始值a。每次裡面那個迴圈試探完成後,外面這個迴圈使得a+1。比如:

假如之前已試探完從1開始和從2開始的所有的連續值序列的集合,那麼這個迴圈使得a+1,此時a為3,進入裡面的迴圈,開始試探以3為初始值的連續值序列的集合。

這種方式是助於理解。其實演算法可以優化為單個迴圈結構。

關於程式設計大賽的一道題目,一個正整數有可能可以被表示為n(n>=2)個連續正整數之和,找出這樣的數並輸出!

2樓:幽蘭書生

這個問題看起來不是很簡單,需要設計一個演算法:

先講數學:

設:an=a+(n-1)*d (這裡d=1)

a1=a

an=a+n-1

sn=(a1+an)n/2=(2a-1+n)/2

再回到這個程式設計上來:

我們的輸入資料其實就是sn,需要找到以a開始的n個連續的遞增數列使得和為sn。

這裡我們可以用迴圈來判定,給定一個n,sn已知,就可以求出a,如果a為正整數那麼就可以找到等差數列的首項,加上n給定,d=1,那麼就可以寫出這個和式子。

**如下:

#include

void main()

}if(flag==0)   //flag初始為0,通過上面的迴圈,如果有滿足的在則不為0,為0則說明不能寫成等差數列

printf("%d不能被表示成n連續正整數之和\n",input);}

怎麼判斷正整數是否為素數流程圖,怎麼判斷一個正整數是否為素數 流程圖

1 首先,開啟clion,在指定的位置建立一個project。點選file new project。2 這裡選擇工程的儲存路徑,並輸入工程名,使用c 11標準,會預設建立一個main.cpp。3 首先建立一個標頭檔案,宣告判斷是否為素數的函式。在專案上右擊 new c c header file。4...

流程圖軟體有哪些,流程圖可以用什麼軟體畫?

bullmind visio processon等,很多,你可以試試bullmind,操作簡單,上手容易 目前知名度比較copy高的有微軟旗下的baivisio,功能相對來說du很強大,但是繪製起來可能操 國內話流程圖一般用 億圖圖示 比較多,這款軟體和visio有點像,但是軟體可以繪製更加漂亮的流...

流程圖軟體visio(急求修改visio圖中的字型大小)

和word一樣 選中你要修改的字,然後選擇字型大小就ok了 有一個辦法,就是在visio中把流程圖的現顯示比例調整合適,就是調到word中的大小 然後螢幕截圖,直接copy到word中,在word中不要調整 大小 visio中的字的大小怎麼設定 visio裡每個形狀都有它已經定義好的字型大小,所以先...