zoukankan      html  css  js  c++  java
  • 【2015】给一个不多于三位的正整数,求出它是几位数,并分别打印出各位上的数字。

    Time Limit: 3 second
    Memory Limit: 2 MB

    给一个不多于三位的正整数,求出它是几位数,并分别打印出各位上的数字。当输入正整数不符合规则,输出“error”字样。

    Input

    输入文件只有一行,内容为一个不多于三位数的正整数N,如123。

    Output

    输出文件有两行第一行为正整数N的位数,3 第二行输出各位上的数字:1 2 3

    Sample Input

    326

    Sample Output

    3
    3 2 6
    

    【题解】

    如果用字符串输入的话,很容易获取位数,但是题目最后数据里面有负数。。这个时候要判断一下字符串的首位是不是负号。也是可以解决问题的。

    【代码】

    #include <cstdio>
    #include <iostream>
    #include <string>
    #include <stdlib.h>
    
    using namespace std;
    
    string s2;
    
    int si;
    
    void s_p()
    {
        printf("error");
        exit(0);
    }
    
    void input_data()
    {
        cin >> s2;
        si = s2.size();
        if (si>3) s_p();
        if (s2[0] == '-') s_p(); //判断该数为负数或为0
        if (s2 == "0") s_p();
    }
    
    void output_ans()
    {
        cout << si << endl; //输出字符串的长度即可。
        for (int i = 1;i <= si-1;i++)
            cout << s2[i-1] << ' ';
        cout << s2[si-1];
    }
    
    int main()
    {
        input_data();
        output_ans();
        return 0;
    }
    


     

  • 相关阅读:
    配置双jdk
    检测一个页面所用的时间的js
    java发送短信开发,第三方接口方法
    jq的常用事件及其案例
    ajax无法返回视图
    SpringMVC IO 文件上传
    及上一篇linux安装mysql的说明
    centos6.10下安装mysql8.0.16root密码修改的坑
    线程池学习
    数组的分隔
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632478.html
Copyright © 2011-2022 走看看