汽水瓶
某商店規定:三個空汽水瓶可以換一瓶汽水,允許向老闆借空汽水瓶(但是必須要歸還)。
小張手上有n個空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
資料範圍:輸入的正整數滿足
1
≤
n
≤
100
1≤n≤100
注意:本題存在多組輸入。輸入的 0 表示輸入結束,並不用輸出結果。
點選檢視程式碼
#include <iostream>
using namespace std;
int main() {
int a = 10;
while(a--){
int s ,x , y, z, result;
result = 0;
cin >> x;
z = x % 3;
while(x / 3 != 0){
result += x / 3;
x = x / 3;
}
s = result + z + 1;
if(s %3 == 0){
result = result + 1;
}
cout << result << endl;
}
return 0;
}
// 64 位輸出請用 printf("%lld")
明明的隨機數
明明生成了
N
N個1到500之間的隨機整數。請你刪去其中重複的數字,即相同的數字只保留一個,把其餘相同的數去掉,然後再把這些數從小到大排序,按照排好的順序輸出。
資料範圍:
1
≤
n
≤
1000
1≤n≤1000 ,輸入的數字大小滿足
1
≤
v
a
l
≤
500
1≤val≤500
``
點選檢視程式碼
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a;
for(int i = 0 ; i < n; i++ ){
int b;
cin >> b;
a.push_back(b);
}
sort(a.begin(),a.end());
auto last = unique(a.begin(), a.end());
a.erase(last, a.end());
for (int i = 0; i < a.size() ; i++) {
cout << a[i] << endl;
}
return 0;
}
// 64 位輸出請用 printf("%lld")
進位制轉換
寫出一個程式,接受一個十六進位制的數,輸出該數值的十進位制表示。
資料範圍:保證結果在
1≤n≤2 31 −1
點選檢視程式碼
#include <iostream>
#include <vector>
using namespace std;
int main() {
string a;
vector<char> ab;
cin >> a;
for (char c : a) {
ab.push_back(c);
}
int b = ab.size();
int result = 0;
for (int i = 2; i < b; i++) {
// 轉換字元為相應的十六進位制值
int hexValue = 0;
if (ab[i] >= '0' && ab[i] <= '9') {
hexValue = ab[i] - '0'; // 數字字元轉換為對應的十進位制值
} else if (ab[i] >= 'A' && ab[i] <= 'F') {
hexValue = ab[i] - 'A' + 10; // 字元 'A'-'F' 轉換為 10-15
} else if (ab[i] >= 'a' && ab[i] <= 'f') {
hexValue = ab[i] - 'a' + 10; // 字元 'a'-'f' 轉換為 10-15
}
// 計算十六進位制值的貢獻並加到 result 中
result = result * 16 + hexValue;
}
cout << result ;
return 0;
}
// 64 位輸出請用 printf("%lld")