1023. Have Fun with Numbers (20)

http://www.patest.cn/contests/pat-a-practise/1023


//17:22
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
#include <math.h>
using namespace std;
vector<int> x;
vector<int> y;
vector<int> y_1;
int main(){
	string s;
	cin >>s;
	int i = 0;
	for(i = 0;i < s.size();i++){
		s[i] = s[i] - '0';
		x.push_back(s[i]);
	}
	bool flag = false;
	for(i = s.size()-1;i >= 0;i--){
		s[i] = s[i] << 1;
		if(flag) s[i]++;
		if(s[i] >= 10){
			s[i] = s[i] - 10;
			flag = true;
		}
		else
			flag = false;
		y.push_back(s[i]);
	}
	if(flag){
		y.push_back(1);
	}
	y_1 = y;
	sort(x.begin(),x.end());
	sort(y.begin(),y.end());
	for(i = 0;i < x.size();i++){
		if(x[i] != y[i])
			break;
	}
	if(i == x.size()){
		printf("Yes\n");
	} 
	else{
		printf("No\n");
	}
	for(i = y_1.size()-1;i >= 0;i--){
		cout<<y_1[i];
	}
	getchar();
	getchar();
	return 0;
}


你可能感兴趣的:(解题报告,浙大机试)