?
?🔥個人主頁:艾莉絲努力練劍
?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題
🍉學習方向:C/C++方向
??人生格言:為天地立心,為生民立命,為往圣繼絕學,為萬世開太平?
前言:上一篇博客又帶大家刷了一些相對來說簡單的代碼題目,本篇文章我們將繼續練習下面的題目。這些題目的難度已經有的挖了大坑,大家做的時候要留意,如果做不出來,看了代碼演示后要自己多敲幾遍,去理解代碼的邏輯。
宇宙安全聲明:鑒于博主能力有限,本專欄適用于代碼小白刷題,大佬們多多包涵(抱拳)!
目錄
正文
一、小樂樂與進制轉換
二、小樂樂求和
(一)題目
?(二)思路
1、思路1
2、思路2
三、小樂樂定鬧鐘
四、小樂樂排電梯
五、小樂樂與歐幾里得
(一)題目
?(二)兩種方法
1、暴力法
2、輾轉相除法
六、小樂樂改數字
七、小樂樂走臺階
八、小樂樂與序列
九、小樂樂與字符串
十、小樂樂找最大數
十一、小樂樂轉換成績
十二、小樂樂計算函數
結尾
正文
一、小樂樂與進制轉換
BC111 小樂樂與進制轉換
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int n = 0;int arr[40] = { 0 };int i = 0;scanf("%d", &n);while (n){arr[i++] = n % 6;n /= 6;}for (i--; i >= 0; i--){printf("%d", arr[i]);}return 0;
}
?
二、小樂樂求和
BC112 小樂樂求和
(一)題目
?(二)思路
1、思路1:
#define _CRT_SECURE_NO_WARNINGS 1//代碼1
#include <stdio.h>int main()
{long long i = 0;long long sum = 0;long long n = 0;scanf("%lld", &n);for (i = 1; i <= n; i++){sum += i;}printf("%lld\n", sum);return 0;
}
2、思路2:
//代碼2
#include <stdio.h>
int main()
{long long n = 0;scanf("%lld", &n);printf("%lld", (1 + n) * n / 2);return 0;
}
?
三、小樂樂定鬧鐘
BC113 小樂樂定鬧鐘
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int h = 0;int m = 0;int k = 0;scanf("%d:%d %d", &h, &m, &k);h = ((m + k) / 60 + h) % 24;m = (m + k) % 60;printf("%02d:%02d\n", h, m);return 0;
}
?
四、小樂樂排電梯
BC114 小樂樂排電梯
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);printf("%d\n", n / 12 * 4 + 2);return 0;
}
?
五、小樂樂與歐幾里得
BC115 小樂樂與歐幾里得
(一)題目
?(二)兩種方法
1、暴力法
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>
//暴力求解
//耗時太久,不滿足條件
int main()
{long long n = 0;long long m = 0;long long tmp = 0;scanf("%lld %lld", &n, &m);long long max = m > n ? n : m;while (max){if (m % max == 0 && n % max == 0){break;}max--;}long long min = m > n ? m : n;while (min){if (min % m == 0 && min % n == 0){break;}min++;}printf("%lld\n", max + min);return 0;
}
2、輾轉相除法
//輾轉相除法
#include<stdio.h>int main()
{long long n = 0;long long m = 0;long long tmp = 0;scanf("%lld %lld", &n, &m);int a = n;int b = m;while(tmp=a%b){a = b;b = tmp;}printf("%lld\n", b + m * n / b);return 0;
}
?
六、小樂樂改數字
BC116 小樂樂改數字
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
#include <math.h>
int main()
{int n = 0;int ret = 0;scanf("%d", &n);int i = 0;while (n){//計算每一位int w = n % 10;//判斷奇偶數if (w % 2 == 1)w = 1;elsew = 0;ret += w * pow(10, i);n /= 10;i++;}printf("%d", ret);return 0;
}
?
七、小樂樂走臺階
BC117 小樂樂走臺階
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int fib(int n)
{if (n <= 2)return n;elsereturn fib(n - 1) + fib(n - 2);
}
int main()
{int n = 0;scanf("%d", &n);printf("%d\n", fib(n));return 0;
}
擴展學習:?劍指Offer算法題-青蛙跳臺階的問題
給大家拓展一個在《劍指offer》里面的題目,我們在介紹遞歸函數時提過兩個問題:青蛙跳臺階和漢諾塔問題,這里我們就拓展一下這個青蛙跳臺階問題。
八、小樂樂與序列
BC118 小樂樂與序列
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int n = 0;int arr[100000] = { 0 };int i = 0;int tmp = 0;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%d", &tmp);arr[tmp] = tmp;}for (i = 0; i < 100000; i++){if (arr[i] != 0)printf("%d ", arr[i]);}return 0;
}
?
九、小樂樂與字符串
BC119 小樂樂與字符串
1、這個題的難度在于理解題目的意思;
2、不是連續的子串;
3、只要在字符串中找到幾個字符能組合成子串就算是“子串”。
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
//
//這個題的難度在于理解題目的意思
//不是連續的子串
//只要在字符串中找到幾個字符能組合成子串就算是“子串”
//
int main()
{char str[8000] = { 0 };int count = 0;scanf("%s", str);char* p = str;long long c = 0;long long ch = 0;long long chn = 0;while (*p){if (*p == 'C')c++;else if (*p == 'H')ch += c;else if (*p == 'N')chn += ch;p++;}printf("%lld\n", chn);return 0;
}
1、這個題中的子串可以是不連續的;
2、ch的個數其實和前面出現的c的個數有關,chn的個數和n之前ch的個數有關。
?
十、小樂樂找最大數
BC123 小樂樂找最大數
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int arr[4] = { 0 };int i = 0;for (i = 0; i < 4; i++){scanf("%d", &arr[i]);}//假設int max = arr[0];for (i = 1; i < 4; i++){if (arr[i] > max){max = arr[i];}}printf("%d\n", max);return 0;
}
?
十一、小樂樂轉換成績
BC125 小樂樂轉換成績
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int score = 0;scanf("%d", &score);if (score < 0 || score>100)printf("F\n");else if (score >= 90 && score <= 100)printf("A\n");else if (score >= 80 && score <= 89)printf("B\n");else if (score >= 70 && score <= 79)printf("C\n");else if (score >= 60 && score <= 69)printf("D\n");elseprintf("E\n");return 0;
}
?
十二、小樂樂計算函數
BC129 小樂樂計算函數
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int max3(int a, int b, int c)
{int max = a;if (b > max)max = b;if (c > max)max = c;return max;
}
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d %d", &a, &b, &c);float m = ((float)max3(a + b, b, c) / (max3(a, b + c, c) + max3(a, b, b + c)));printf("%.2f\n", m);return 0;
}
結尾
往期回顧:
【C語言刷題12天IO強訓】到這里博主已經寫了十一篇了,列出來有水字數嫌疑,就只放第十篇的網址,博主把專欄的前九篇的網址都放在C語言刷題(十)的【往期回顧】了,點擊文章下面的【傳送門】就可以看了,本文就只放第十篇,專欄鏈接掛在文章開頭。
【C語言刷題】第十天:加量加餐繼續,代碼題訓練,融會貫通IO模式
結語:本篇文章帶大家刷了十二道題目,大家認真思考一下,結合知識點就能想出來,大家一定要及時回顧前面刷過的題目。本文到這里就結束了,希望對友友們有所幫助。本文的代碼相比起之前的題目,難度上已經加深了很多,大家要上手操作,后面的代碼題難度上整體是逐漸遞增的,博主控制了難度,這樣友友們能比較絲滑地上手敲下去。