pat1023Have Fun with Numbers (20)
2015-10-04 17:23
429 查看
题意分析:
(1)水题,给出一个长度在20以内的正整数,问翻倍之后结果是否是原来的数的各位数字组成的一个新排列
(2)使用数组num[10]来统计每个数字出现的频数,输入数字时,在对应的下标位置开始计数,遍历结果时,执行对应下标位置自减,最后遍历数组,有不为0的则不是
可能坑点:
(1)20位以内的整数可能已经超出long long类型的范围,还是采用字符串或者是字符数组来处理
(1)水题,给出一个长度在20以内的正整数,问翻倍之后结果是否是原来的数的各位数字组成的一个新排列
(2)使用数组num[10]来统计每个数字出现的频数,输入数字时,在对应的下标位置开始计数,遍历结果时,执行对应下标位置自减,最后遍历数组,有不为0的则不是
可能坑点:
(1)20位以内的整数可能已经超出long long类型的范围,还是采用字符串或者是字符数组来处理
#include <iostream> #include <string.h> #include <algorithm> #include <stdio.h> using namespace std; int num[10]={0}; int main() { string raw=""; char ch; while((ch=getchar())!='\n') { raw+=ch; num[ch-'0']++; } int length=raw.length(); int carry=0,temp=0; string result=""; for(int j=length-1;j>=0;j--) { temp=(raw[j]-'0')*2+carry; result+=(temp%10+'0'); num[temp%10]--; carry=temp/10; } if(carry) { num[carry]--; result+=carry+'0'; } reverse(result.begin(),result.end()); for(int k=0;k<10;k++) { if(num[k]!=0) { cout<<"No"<<endl; cout<<result<<endl; return 0; } } cout<<"Yes"<<endl; cout<<result<<endl; return 0; }
相关文章推荐
- 计算机硬件组成以及核心硬件
- php mysqli_connect_error()与mysqli_connect_errno()函数的区别
- 用Python学习统计学基础-6
- MySQL 最经常使用的一千行
- tcpdump分析网络故障的例子
- GOF 23 设计模式 之 模版方法模式(template method)
- 机器学习算法-K最近邻从原理到实现(Python)
- Codeforces Round #323 (Div. 2) (583A,583B,582A,582B)
- EF异常:对一个或多个实体的验证失败
- 摩托罗拉SE4500 德州仪器TI Omap37xx/AM3715/DM3730/AM3530 wince6.0/Windows Mobile 6.5平台 二维软解调试记录及相关解释
- 摩托罗拉SE4500 德州仪器TI Omap37xx/AM3715/DM3730/AM3530 wince6.0/Windows Mobile 6.5平台 二维软解调试记录及相关解释
- C++ map容器 按照value值排序
- 如何使用tcpdump来捕获TCP SYN,ACK和FIN包
- java微信开发需具备的条件
- HDU 2501 Tiling_easy version(我也是醉了,竟然是一样的代码)
- 【python】python2.x 与 python3.x区别对照+缩进错误解决方法
- hibernate的工作原理以及为什么要使用hibernate
- 能量获取
- iOS UI 基础
- 搭建Android环境