网站首页 > 技术教程 正文
学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
任何一个正整数都可以用 2 的幂次方表示。例如 137=2^7+2^3+2^0。
同时约定次方用括号来表示,即 a^b 可表示为 a(b)。
由此可知,137 可表示为 2(7)+2(3)+2(0)
进一步:
7=2^2+2+2^0 ( 2^1 用 2 表示),并且 3=2+2^0。
所以最后 137 可表示为 2(2(2)+2+2(0))+2(2+2(0))+2(0)。
又如 1315=2^10+2^8+2^5+2+1
所以 1315 最后可表示为 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。
【输入】
一行一个正整数 n。
【输出】
符合约定的 n 的 0,2 表示(在表示中不能有空格)。
【输入样例】
1315
【输出样例】
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int mark[20] = {1};
void f(int n)
{
int flag = 0;
while (n>=mark[flag]) {
flag++;
}
flag--;
if (flag==1) {
cout << 2;
} else {
if (flag==0) {
cout << "2(0)";
} else {
cout << "2(";
f(flag);
cout << ")";
}
}
n -= mark[flag];
if (n!=0) {
cout << "+";
f(n);
}
}
int main()
{
int n;
cin >> n;
for (int i=1; i<17; i++) mark[i] = mark[i-1] * 2;
f(n);
return 0;
}
【运行结果】
137
2(2(2)+2+2(0))+2(2+2(0))+2(0)
猜你喜欢
- 2024-10-05 七律 巴夫洛谷的春天 巴夫洛logo
- 2024-10-05 「洛谷日报第31期」dijkstra详解 dijkstra floyd
- 2024-10-05 「洛谷日报第27期」点分治略解 点分什么意思
- 2024-10-05 洛谷刷题C++语言 | P1036 选数 洛谷p5714答案c语言
- 2024-10-05 洛谷刷题C++语言 | P1012 拼数 洛谷p5714答案c语言
- 2024-10-05 洛谷刷题C++语言 | P3392 涂国旗 c语言画国旗代码
- 2024-10-05 「洛谷日报第20期」浅谈基础根号算法——分块
- 2024-10-05 洛谷刷题C++语言 | P1102 A-B数对
- 2024-10-05 洛谷刷题C++语言 | P1443 马的遍历
- 2024-10-05 「洛谷日报第87期」浅谈并查集优化
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)