编程一小时2023.4.23
1.
#include <bits/stdc++.h>
using namespace std;
string a, s;
int b[1005], t, c[1005];
void division() {
for (int i = t - 1; i >= 0; i--) {
if (b[i] % 2)
b[i - 1] += 10;
b[i] /= 2;
}
while (b[t - 1] == 0)
t--;
}
void mult() {
for (int i = t - 1; i >= 0; i--) {
c[i] *= 2;
if (c[i] > 9) {
c[i] -= 10;
c[i + 1]++;
if (i + 1 == t)
t++;
}
}
}
void p() {
c[0]++;
for (int i = 0; c[i] > 9; i++) {
c[i] -= 10, c[i + 1]++;
if (i + 1 == t)
t++;
}
}
int main() {
cin >> a;
t = a.size();
for (int i = 0; i < t; i++)
b[i] = a[a.size() - i - 1] - '0';
while (t > 1 || t == 1 && b[0] > 0) {
s = char(b[0] % 2 + '0') + s;
b[0] -= b[0] % 2;
division();
}
reverse(s.begin(), s.end());
t = 1;
for (int i = 0; i < s.size(); i++) {
mult();
if (s[i] == '1')
p();
}
for (int i = t - 1; i >= 0; i--)
cout << c[i];
cout << endl;
return 0;
}
2.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
string s;
while (cin >> s)
{
int sum = 0;
for (int i = s.length() - 1, j = 0; i >= 0; i --, j ++)
{
sum += (s[i] - '0') * (pow(2, j + 1) - 1);
}
cout << sum << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~