社区讨论
求助代码本地测试结果正确,但是提交得0分,请好心大佬帮忙看看
B3870[GESP202309 四级] 变长编码参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lpjjqjd5
- 此快照首次捕获于
- 2023/11/29 17:10 2 年前
- 此快照最后确认于
- 2023/11/29 19:57 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
unsigned long long n;
int a[210] = {0}, l = 0, i = 0, c[100], sum, w;
string s, b, ans;
int main(){
cin >> n;
if(n == 0){
cout << "00";
return 0;
}
while(n){
int sum = n % 2;
a[++l] = sum;
n /= 2;
}
while(i * 7 <= l){
i++;
for(int j = 1; j <= 7; j++){
s += a[(i - 1) * 7 + j] + '0';
}
if(i * 7 < l){
s += '1';
}
else{
s += '0';
}
for(int j = s.size() - 1; j >= 0; j--){
b += s[j];
}
for(int j = 0; j < b.size(); j++){
c[j] = b[j] - '0';
}
sum = 0;
w = 1;
for(int j = b.size() - 1; j >= 0; j--){
sum += c[j] * w;
w *= 2;
}
int w = sum;
while(w){
int sum = w % 16;
if(sum >= 10){
ans += sum + 55;
}
else{
ans += sum + 48;
}
w /= 16;
}
if(ans.size() == 1){
cout << "0";
}
for(int j = ans.size(); j >= 0; j--){
cout << ans[j];
}
cout << " ";
ans = "";
b = "";
s = "";
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...