迴圈結構演算法小練習

2021-09-22 09:30:57 字數 2958 閱讀 7694

輸入乙個10的9次方的正整數,輸出它的位數。例如輸入123,的位數為3。

#include #include

using

namespace

std;

intmain()

cout

/輸出位數

getch();

return0;

}

水仙花數

輸出100~999中所有水仙花數。若3位數abc滿足abc=a3+b3+c3,則稱其為水仙花數。

例如153=1的3次方+5的3次方+3的3次方。

分析:迴圈判斷解決之。

#include #include

using

namespace

std;

int main()

}getch();

return0;

}

韓信點兵

相傳韓信才智過人,只要讓士兵先後三人一排、五人一排、七人一排地變換隊形,而他只要掠一眼隊伍的排尾就知道總人數了。

輸入3個非負整數a,b,c表示每種隊形排尾的人數(a<3,b<5,c<7),輸出總人數的最小值。

已知總人數不小於10,不超過100。

樣例輸入:2 1 6

樣例輸出:41

樣例輸入:2 1 3

樣例輸出:no answer

分析:迴圈判斷之,也就是通過列舉來獲取結果。這就利用了計算機快的優勢了。

#include #include

using

namespace

std;

int main()

}if(!flag)

getch();

return0;

}

倒三角形

輸入正整數n<=20,輸出乙個n層的倒三角形。例如n=5時輸出如下:

#########

#######

#####

####

分析:迴圈解決之,每次長2

#include #include

using

namespace

std;

int main()

//#號輸出

for(j=0;j<2*i-1;j++)

cout

<

; }

getch();

return0;

}

調和級數

輸入正整數n,輸出h(n)=1+1/2+1/3+...+1/n的值,保留3位小數。例如n=3時答案為1.833。

分析:迴圈解決之。

#include #include

intmain()

printf(

"%.3lf

",s);

getch();

return0;

}

近似計算

計算pi/4 = 1 - 1/3 + 1/5 - 1/7 +...,直到最後一項小於10負6次方。

分析:迴圈條件解決之。

#include #include

intmain()

else

i += 2

; count++;

}printf(

"%.9lf

",4*pi);

getch();

return0;

}

子串行的和

輸入兩個正整數n

#include #include

intmain()

while(n<=m)

printf(

"%.5lf

",sum);

getch();

return0;

}

分數化小數

輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點後c位。

a,b<=10的6次方,c<=100。

例如a=1,b=6,c=4時應輸出0.1667。

#include #include

intmain()

排列

用1,2,3,...,9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要求abc:def:ghi = 1:2:3。

輸出所有解。

分析:從i=123到i=987/3迴圈,思考之後會排出很多沒用的計算。

然後算出2*i,3*i。

然後判斷它是否由1,2,3,...,9組成。

#include #include 

int func(int

a);//

把整個陣列初始化為0;

for(temp=a%10;a;a/=10,temp=a%10

)if(flag[temp]++ == 1) return

0;//

如果有相同的位,則陣列的那個位會被++兩次

return1;

}int

main()

我的版本

#include #include

int func(int

a);//

定義乙個臨時變數和乙個十個元素的陣列

//如果初始化時指定的的元素個數比陣列大小少,剩下的元素都回被初始化為0。

for(temp=a%10;a;a/=10,temp=a%10)//

從末尾開始判斷,直至全部判斷完成

if(flag[temp]++ == 1

)

//比較之後再加1,如果加一之前已經為1,說明已存在

return1;

}int

main()

}getch();

return0;

}

192  384  576

219  438  657

273  546  819

327  654  981

迴圈小練習

1.計算1 100之間所有不能被3整除的整數的和,且第乙個大於或等於2000的和是幾 初始和為0 var sum 0 用迴圈求和 for var i 1 i 100 i 判斷和是否大於或等於2000 if sum 2000 console.log sum 2.大馬馱2石糧食,中馬馱1石糧食,兩頭小馬...

演算法小練習

連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字0,空字串不處理。解題思路 迴圈從鍵盤輸入,對於每個字串首先判斷長度是否大於8,如果是大於8的,計算是8的幾倍,以8個切片放到乙個陣列。再看下是否有餘數,因為餘數要用0補齊8位,放到陣列。如果字串的長度小...

演算法小練習

寫出乙個程式,接受乙個十六進製制的數,輸出該數值的十進位制表示。多組同時輸入 解題思路 十六進製制數都是0x開頭的,轉換為十進位制為sum a 16 n 公式不好寫,意思是各個位上的數字,乘以16的指數,指數根據每位的位置不同,如最後一位就是,0次方 這樣,可以先去掉ox得到後面r的字串,十六進製制...