Have Fun with Numbers

#include<bits/stdc++.h>
using namespace std;

struct bign {
	int d[100];
	int len;
	bign() {
		memset(d,0,sizeof(d));
		len=0;
	}
};

bign change(string str) {
	bign a;
	a.len=str.size();
	for(int i=0; i<a.len; i++) {
		a.d[i]=str[a.len-1-i]-'0';
	}
	return a;
}

bign mul(bign a,int b) {
	bign c;
	int carry=0;
	for(int i=0; i<a.len; i++) {
		int temp=a.d[i]*b+carry;
		c.d[c.len++]=temp%10;
		carry=temp/10;
	}
	while(carry!=0) {
		c.d[c.len++]=carry%10;
		carry/=10;
	}
	return c;
}

bool compare(bign a,bign b) {
	if(a.len!=b.len) {
		return 0;
	}
	int count[10]= {0};
	for(int i=0; i<a.len; i++) {
		count[a.d[i]]++;
		count[b.d[i]]--;
	}
	for(int i=0; i<a.len; i++) {
		if(count[a.d[i]]) {
			return 0;
		}
	}
	return 1;
}

void Printf(bign a) {
	for(int i=a.len-1; i>=0; i--) {
		cout<<a.d[i];
	}
}

int main() {
	string str;
	cin>>str;
	bign a=change(str);
	bign b=mul(a,2);
	if(compare(a,b)) {
		cout<<"Yes"<<endl;
	} else {
		cout<<"No"<<endl;
	}
	Printf(b);
	return 0;
}

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务