络谷 P1010 幂次方

络谷 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

*/
发布了954 篇原创文章 · 获赞 307 · 访问量 112万+

猜你喜欢

转载自blog.csdn.net/liu16659/article/details/104188587
今日推荐