Luogu P1010 幂次方
【橙题不会做系列】QAQ
是李老师上课的题目……
这题最开始想法是打表做。事实证明这样做也可以(
老师用的是位运算……
这种一步步分解也能想到用递归qwq
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <stack>
#include <cmath>
using namespace std;
void qwq(const int n)
{
stack<int> pwp;
int a,m=n,s=0;
while (m)
{
a=n&(1<<s);
m>>=1;
if (a)
{
pwp.push(s);
}
s++;
}
if (pwp.top()==0)
{
printf("2(0)");
}
else if (pwp.top()==1)
{
printf("2");
}
else if (pwp.top()==2)
{
printf("2(2)");
}
else
{
printf("2(");
qwq(pwp.top());
printf(")");
}
pwp.pop();
while (!pwp.empty())
{
printf("+");
if (pwp.top()==0)
{
printf("2(0)");
pwp.pop();
continue;
}
if(pwp.top()==1)
{
printf("2");
pwp.pop();
continue;
}
if (pwp.top()==2)
{
printf("2(2)");
pwp.pop();
continue;
}
printf("2(");
qwq(pwp.top());
printf(")");
pwp.pop();
}
}
void start()
{
int n;
scanf("%d",&n);
qwq(n);
}
int main()
{
start();
return 0;
}
Luogu P1010 幂次方的更多相关文章
- P1010 幂次方 P1022 计算器的改良
P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ...
- 2021.07.26 P1010 幂次方(数论)
2021.07.26 P1010 幂次方(数论) [P1010 NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.二进制 题意: 用20 ...
- 洛谷 P1010 幂次方 Label:模拟
题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) ...
- 解题笔记-洛谷-P1010 幂次方
0 题面 题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+ ...
- P1010 幂次方 递归模拟
题目描述 任何一个正整数都可以用22的幂次方表示.例如 137=2^7+2^3+2^0137=27+23+20 同时约定方次用括号来表示,即a^bab 可表示为a(b)a(b). 由此可知,13713 ...
- p1010幂次方---(分治)
题目描述 任何一个正整数都可以用222的幂次方表示.例如 137=27+23+20137=2^7+2^3+2^0 137=27+23+20 同时约定方次用括号来表示,即aba^bab 可表示为a(b) ...
- 洛谷P1010 幂次方
题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137137可表示为: 2(7)+2(3)+2( ...
- P1010 幂次方(分治)
https://www.luogu.com.cn/problem/P1010 刚刚看到这个题时,有点懵,如果说这是个数学题 比如说7,应该先求出7 = 4 + 2 + 1; 即先分解出里面应该有最多的 ...
- 洛谷 P1010 幂次方
做了好久,递归拆吧 #include<iostream>#include<cstdio>#include<cmath>using namespace std;int ...
随机推荐
- jstat命令详解
Jstat是JDK自带的一个轻量级小工具.全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令 ...
- Golang, 以 9 个简短代码片段,弄懂 defer 的使用特点
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- Educational Codeforces Round 50
1036A - Function Height 20180907 \(ans=\left \lceil \frac{k}{n} \right \rceil\) #include<bits/ ...
- 微信JS-SDK说明文档【申明:来源于网络】
微信JS-SDK说明文档[申明:来源于网络] 地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
- Dijkstra模板
Dijkstra struct node { long long x,d; node(); node(long long xx,long long dd){ x = xx; d = dd; } }; ...
- DataGrid表格某单元格数据填入是否正确的验证---MiniUI使用
示例: <div id="datagrid1" class="mini-datagrid" oncellvalidation="onCellVa ...
- day5_非空即真非零即真
非空即真(字符串.元组.列表.字典.None),非零即真(指的是int类型或数字这种) # d={}# l=[]# t=()# a = ''# b = None以上都代表空 举例1: name = i ...
- 常用oracle hints
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...
- python线程、协程、I/O多路复用
目录: 并发多线程 协程 I/O多路复用(未完成,待续) 一.并发多线程 1.线程简述: 一条流水线的执行过程是一个线程,一条流水线必须属于一个车间,一个车间的运行过程就是一个进程(一个进程内至少一个 ...
- Linux操作系统加固
1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险. 操作步骤 使用命令 userdel <用户名> 删除不必要的账号. 使用命令 passwd -l <用 ...