络谷 P1010 幂次方
1.题意
见链接
2.分析
- 递归处理即可
3.代码
#include<iostream>
using namespace std;
//将数num的2次方表达式打印出来
void printNum(int num){
if(num == 2){
cout <<"2";
return ;
}
while(num>0){
for(int i = 14;i>=0;i--){
int temp = 1 <<i;
//cout <<"temp="<< temp<<"\n";
if(num >= temp ){
num -= temp;
if(i > 1){
cout<<"2(";
printNum(i);
cout<<")";
}
else if(i == 1){
cout <<"2";
}
else if(i == 0){
cout <<"2(0)";
}
if(num>0)//说明后面还有加项,则打印加号
cout <<"+";
}
}
}
}
int main(){
int num;
cin >> num;
printNum(num);
}
4.测试用例
/*
4
2(2)
5
*/