🌟菜鳥主頁:@晨非辰的主頁
👀學習專欄:《C語言刷題合集》
💪學習階段:C語言方向初學者
?名言欣賞:"代碼行數決定你的下限,算法思維決定你的上限。"
目錄
1.??BC82?乘法表
2.??BC83?牛牛學數列1
3.??BC84?牛牛學數列2
4.??BC85?牛牛學數列3
5.??BC86?牛牛學數列4
6.??BC87?數位之和
7.??BC88?魔法數字變換
1.??BC82?乘法表
鏈接:牛客網_BC82 乘法表_入門
輸出描述:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
int main()
{int num1, num2;//循環,num2作第2個因子for(num2 = 1; num2 < 10; num2++){//循環,num1作第1個因子for(num1 = 1; num1 <= num2; num1++){printf("%d*%d=%2d ", num1, num2, num1*num2);}printf("\n");}return 0;
}
思路——
--本題根據樣例,兩個因子的數值變換——>可知需要循環嵌套來進行數值變換;主要在于搞清楚因子的循環位置,誰外層、誰內層;樣例知:第2因子在進行某行輸出時會保持不變--外層。
2.??BC83?牛牛學數列1
鏈接:牛客網_BC83 牛牛學數列-入門
int main()
{int n = 0;scanf("%d", &n);int Sn = 0;//循環生成1~nfor (int i = 1; i <= n; i++){int j = i;//觀察知:偶數位為負值if (j % 2 == 0){j = -j;//注意:在判斷時,不要直接用i。這樣會改變后續i的值,導致循環出錯}Sn += j;}printf("%d\n", Sn);return 0;
}
思路——
--本題還是很簡單的,就只需要考慮下何時加負號:觀察為偶數項,直接來個循環生成數值時在判斷是否為偶數。
3.??BC84?牛牛學數列2
鏈接:牛客網_BC84 牛牛學數列2_入門
int main()
{int n = 0;scanf("%d", &n);double Sn = 0.0;//先循環生成1~nfor(int i = 1; i <= n; i++){double j = 1.0 / i;//賦值生成分數Sn += j;}printf("%.6lf\n", Sn);return 0;
}
思路——
--本題注意點與上題相似,需要另創變量接收 i 值,在進行累加操作,防止后續 i 值被覆蓋,循環出錯;對于格式要求,小子這里不在啰嗦~
4.??BC85?牛牛學數列3
鏈接:牛客網_BC85 牛牛學數列3_簡單
int main()
{int n = 0;double Sn = 0.0;int k = 0;scanf("%d", &n);for (int i = 1; i <= n; i++){int j = 2 * i - 1;if (i % 2 == 0){j = -j;}k += j;//注意:變量之間的賦值關系,創建k的目的是方便進行分母的求和Sn += (1.0 / k);}printf("%.3lf\n", Sn);return 0;
}
思路——
--本題在上面的注意點外又另創變量,來分部操作,便于代碼的運行、理解;對于格式要求,小子這里不在啰嗦~
5.??BC86?牛牛學數列4
鏈接:牛客網_BC86 牛牛學數列4_入門
int main()
{int n = 0;scanf("%d", &n);int Sn = 0;int j = 0;for(int i = 1; i <= n; i++){j += i;Sn +=j; }printf("%d\n", Sn);return 0;
}
思路——
--本題結構簡單,循環的基礎上,進行兩次的累加操作即可完成任務。
6.??BC87?數位之和
鏈接:牛客網_BC87 數位之和_入門
int main()
{long n = 0;int Sn = 0;scanf("%ld", &n);do { //絕對值if (n < 0){n = -n;}Sn += (n % 10);n /= 10;//丟掉最末位}while (n);printf("%d\n", Sn);return 0;
}對于絕對值的執行,可以換條件操作符n = (n < 0) ? -n : n;
思路——
--本題要求對于負數取絕對值計算,這里就有兩種方式:1. 最為普遍的條件語句,容易想到;2. 條件操作符,這個使者很便利;因為使do-while循環,對于循環的條件直接設置依次取位數的結果,正好循環內用得到。
7.??BC88?魔法數字變換
鏈接:牛客網_BC88 魔法數字變換_入門
int main()
{int n = 0;int count = 0;//計數scanf("%d", &n);do {//判斷數值屬性if(n % 2 == 0){n /= 2;// count++;}else {n = n * 3 +1;// count++;}count++;}while (n > 1);printf("%d\n", count); return 0;
}
思路——
--本題主體結構依舊采用 do-while 循環,題目要求設置簡單,對于循環的條件,因為要求變換到1,直接將>1作為條件。
刷題系列回顧:
#C語言——刷題攻略:牛客編程入門訓練(九):攻克 分支控制(三)、循環控制(一),輕松拿捏!
結語:本篇文章就到此結束了,本文主要是練習部分循環控制題目,后續的題目練習難度會慢慢上來,但總體來說不會太難,喜歡的朋友們,一起來學習吧!歡迎三連~?