PAT数据结构陈越——自测04

原创 2015年07月08日 18:49:51

最近在看网易云课堂的浙大数据结构公开课视频。跟着做了一些基础的习题。这是其中一道。
题目如下:

00-自测4. Have Fun with Numbers (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see the result if we double it again!

Now you are suppose to check if there are more numbers with this property. That is, double a given number with k digits, you are to tell if the resulting number consists of only a permutation of the digits in the original number.

Input Specification:

Each input file contains one test case. Each case contains one positive integer with no more than 20 digits.

Output Specification:

For each test case, first print in a line “Yes” if doubling the input number gives a number that consists of only a permutation of the digits in the original number, or “No” if not. Then in the next line, print the doubled number.

Sample Input:
1234567899
Sample Output:
Yes
2469135798
题目是英文的,我简单翻一下。。
简单说就是一个最多20位的数字,乘上2倍,得出的数字是否和原来的数字构成是一样的,比如原来是123456789,乘上2后=246913578还是由123456789这9个数字组成的数,只是顺序变了。如果输入的数字满足上面的要求就输出Yes,否则输出No,并输出x2后的结果。
因为最多有20位的数字,就不能简单用int或long计算,要用字符数组模拟乘法的计算,将输入的数每一位x2+进位得到结果。具体代码如下:

int main() {
    //记录输入正整数的数字组成
    int zc[10] = {0};
    //因为不知道长度所以先读取成字符串
    char input_str[25];
    cin>>input_str;
    //获得字符串长度
    int length = strlen(input_str);
    int num[25];
    int i;
    //字符数组转换成int数组,并赋值记录数组
    for(i=0;i<length;i++) {
        num[i] = input_str[length-i-1]-'0';
        zc[num[i]]++;
    }
    //for(i=0;i<10;i++) cout<<zc[i]<<" "; 
    //把原来的数字x2
    int c = 0;
    for(i=0;i<length;i++) {

        int s = num[i]*2+c;
        num[i] = s%10;
        c = s/10;
    }
    if(c!=0) {
        num[length]=c;
        length++;
    }
    for(i=0;i<length;i++) {
       zc[num[i]]--;
    }
    bool isOk=true;
    for(i=0;i<10;i++) {
        if(!zc[i]==0) isOk=false;
    }
    for(i=length-1;i>=0;i--) cout<<num[i];
    cout<<endl;
    if(isOk) cout<<"YES";
    else cout<<"NO";
    cout<<endl;
    return 0;
}

中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题&代码

题目网址自测-1 打印沙漏(20 point(s))本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;...
  • qq_25436597
  • qq_25436597
  • 2017年12月16日 17:54
  • 56

PTA中国大学MOOC-陈越、何钦铭-数据结构-2017春课后作业03树1 树的同构

03-树1 树的同构   (25分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、...
  • winnerCLAY
  • winnerCLAY
  • 2017年03月30日 12:13
  • 837

中国大学MOOC-陈越、何钦铭-数据结构 Tree Traversals Again

题目描述: An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For ...
  • qq_23849183
  • qq_23849183
  • 2015年10月19日 19:18
  • 1169

中国大学MOOC-陈越、何钦铭-数据结构基础习题——总结

终于看完这个公开课了,, 还有把这些程序编写完了,好了。 这两天,先做项目,然后继续自己的PAT编写。 代码放着这里了 http://download.csdn.net/detail/xkzj...
  • xkzju2010
  • xkzju2010
  • 2015年07月01日 15:02
  • 1032

陈越《数据结构》第一讲 基本概念

陈越《数据结构》第一讲 基本概念1什么是数据结构1.1 引子例子:如何在书架上摆放图书? 随便放; 按照书名的拼音字母顺序排放; 把书架划分成几块区域,每块区域指定摆放某种类别的图书...
  • huang1024rui
  • huang1024rui
  • 2017年06月08日 21:34
  • 883

数据结构~新学期寄予~你怎么知道我被翁凯虐惨了

新学期还有10天就开始了,你准备好了吗?^_^ 如果你学过翁恺老师的“C语言程序设计”并且被他的期末考试虐到心塞,“陈越姥姥”跟你握个手 —— 咱们是同学啊!(刚学完C就教数据结构我也是醉了……)如...
  • moomooi
  • moomooi
  • 2015年08月23日 21:05
  • 1029

网易云课堂 浙江大学-陈越、何钦铭-数据结构基础习题集(自测)

题目链接:http://www.patest.cn/contests/mooc-ds 【打印沙漏】 #include #include #include using namespace std;...
  • chaiwenjun000
  • chaiwenjun000
  • 2015年08月07日 22:01
  • 2451

陈越、何钦铭《数据结构》第一讲基本概念 笔记

1.1什么是数据结构 1.1.1关于数据组织-例:图书摆放 ”数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相应的函数来给出。“ Sartaj ...
  • wtrnash
  • wtrnash
  • 2015年09月03日 16:22
  • 1855

陈越《数据结构》第二章 线性结构

2.1 线性表2.1.1 基本知识例1:一元多项式及其运算 f(x)=a0+a1x....+an−1xn−1+anxnf(x)=a_0 + a_1 x ....+a_{n-1}x^{n-1} + a...
  • huang1024rui
  • huang1024rui
  • 2017年06月12日 12:08
  • 698

中国大学MOOC-陈越、何钦铭-数据结构-2015秋 03-树3 Tree Traversals Again (25分)

题目传送门~ 这道题的本意是给定一颗二叉树的先序和中序序列,如何得到这颗二叉树的后序遍历序列,这个问题已经很古老了,然而今天是第一次写,想通了遍历的原理,很容易写出递归版本的求后序序列的函数,至于...
  • just_sort
  • just_sort
  • 2015年09月26日 16:45
  • 1535
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PAT数据结构陈越——自测04
举报原因:
原因补充:

(最多只允许输入30个字)