算法訓(xùn)練 字符串逆序?
時(shí)間限制:1.0s? 內(nèi)存限制:512.0MB
提交此題? ?
輸入一個(gè)字符串,長(zhǎng)度在100以內(nèi)郎任,按相反次序輸出其中的所有字符。
樣例輸入
tsinghua
樣例輸出
auhgnist
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<stack>
using namespace std;
int main() {
? ? string s1;
? ? ? ? cin >> s1;
? ? stack<char> s;
? ? int num = s1.size();
? ? for (int i = 0; i < num;i++) {
? ? ? ? s.push(s1[i]);//string的一個(gè)單元的類型是char
? ? }
? ? int num2 = s.size();
? ? for (int i = 0; i < num; i++) {
? ? ? ? cout << s.top();
? ? ? ? s.pop();
? ? }
? ? return 0;
}
思路分析:
① 定義變量:字符串油湖;
②逆序字符串讶迁;
③輸出字符串。
算法提高 6-9刪除數(shù)組中的0元素?
時(shí)間限制:1.0s? 內(nèi)存限制:512.0MB
提交此題? ?
編寫函數(shù)CompactIntegers鬓长,刪除數(shù)組中所有值為0的元素谒拴,其后元素向數(shù)組首端移動(dòng)。注意涉波,CompactIntegers函數(shù)需要接收數(shù)組及其元素個(gè)數(shù)作為參數(shù)英上,函數(shù)返回值應(yīng)為刪除操作執(zhí)行后數(shù)組的新元素個(gè)數(shù)炭序。
輸入時(shí)首先讀入數(shù)組長(zhǎng)度,再依次讀入每個(gè)元素苍日。
將調(diào)用此函數(shù)后得到的數(shù)組和函數(shù)返回值輸出惭聂。
樣例輸入
7
2 0 4 3 0 0 5
樣例輸出
2 4 3 5
4
#include <iostream>
using namespace std;
int main() {
? ? int n;
? ? cin >> n;
? ? int cnt = 0;
? ? for(int i = 0; i < n; i++) {
? ? ? ? int t;
? ? ? ? cin >> t;
? ? ? ? if(t != 0) {
? ? ? ? ? ? cout << t << " ";
? ? ? ? ? ? cnt++;
? ? ? ? }
? ? }
? ? cout << endl << cnt;
? ? return 0;
}
思路分析:
①定義變量:數(shù)組長(zhǎng)度,元素相恃,循環(huán)次數(shù)辜纲;
②輸入數(shù)組長(zhǎng)度;
③循環(huán)輸入元素拦耐;
④刪除0元素侨歉,計(jì)不是0元素的個(gè)數(shù);
⑤輸出刪除0元素的元素及個(gè)數(shù)揩魂。
算法訓(xùn)練 瓷磚鋪放?
時(shí)間限制:1.0s? 內(nèi)存限制:512.0MB
提交此題? 錦囊1? 錦囊2
問題描述
有一長(zhǎng)度為N(1<=N<=10)的地板幽邓,給定兩種不同瓷磚:一種長(zhǎng)度為1,另一種長(zhǎng)度為2火脉,數(shù)目不限牵舵。要將這個(gè)長(zhǎng)度為N的地板鋪滿,一共有多少種不同的鋪法倦挂?
例如畸颅,長(zhǎng)度為4的地面一共有如下5種鋪法:
4=1+1+1+1
4=2+1+1
4=1+2+1
4=1+1+2
4=2+2
編程用遞歸的方法求解上述問題。
輸入格式
只有一個(gè)數(shù)N方援,代表地板的長(zhǎng)度
輸出格式
輸出一個(gè)數(shù)没炒,代表所有不同的瓷磚鋪放方法的總數(shù)
樣例輸入
4
樣例輸出
5
#include <iostream>?
using namespace std;?
int cnt = 0;?
?
void dfs(int n) {?
? ? if(n == 1) {?
? ? ? ? cnt++;?
? ? ? ? return ;?
? ? }?
? ? if(n == 2) {?
? ? ? ? cnt++;?
? ? ? ? dfs(n - 1);?
? ? ? ? return ;?
? ? }?
? ? dfs(n-1);?
? ? dfs(n-2);?
}?
int main() {?
? ? int n;?
? ? cin >> n;?
? ? dfs(n);?
? ? cout << cnt;?
? ? return 0;?
}?
思路分析:
①定義變量: 地板的長(zhǎng)度,總數(shù)犯戏;
②輸入地板的長(zhǎng)度送火;
③調(diào)用函數(shù):遞歸;
④輸出所有不同的瓷磚鋪放方法的總數(shù)先匪。