1023 Have Fun with Numbers(PAT (Advanced Level) Practice)

目录

题目

输入样例

输出样例

提交结果截图

源代码


题目

1023 Have Fun with Numbers(PAT (Advanced Level) Practice)

输入样例

1234567899

输出样例

Yes
2469135798

提交结果截图

1023 Have Fun with Numbers(PAT (Advanced Level) Practice) 

源代码

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main()
{
	string number;
	int num_bit;//number的每一位数
	int digit[10];//存储0~9出现的次数
	int carry_flag = 0,//进位标志
		same_flag = 0;//相同标志
	cin >> number;
	int len = number.length();
	for (int i = 0; i < 10; i++)
		digit[i] = 0;
	for (int i = len - 1; i >= 0; i--)
	{
		num_bit = number[i] - '0';
		digit[num_bit]++;
		num_bit = num_bit * 2 + carry_flag;
		carry_flag = 0;
		if (num_bit >= 10)
		{
			num_bit -= 10;
			carry_flag = 1;
		}
		number[i] = num_bit + '0';
		digit[num_bit]--;
	}
	for (int i = 0; i < 10; i++)
		if (digit[i])
			same_flag = 1;
	if (carry_flag || same_flag)
		printf("No\n");
	else
		printf("Yes\n");
	if (carry_flag)
		cout << "1";
	cout << number;
	return 0;
}

上一篇:C6678高性能处理平台学习资料第5篇:基于TMS320C6678+XC7K325T的6U CPCIe高性能处理平台


下一篇:JM-S03061AH-002 verilog 驱动程序