zoukankan      html  css  js  c++  java
  • oj练习四道题目

    Description

    给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

    Input

    一个不大于5位的数字

    Output

    三行第一行 位数第二行 用空格分开的每个数字,注意最后一个数字后没有空格第三行 按逆序输出这个数

    #include <iostream>
    using namespace std;
    int main()
    {
        int n;
        int a,b,c,d,e;
        cin>>n;
        a=n/10000;
        b=(n-10000*a)/1000;
        c=(n-10000*a-1000*b)/100;
        d=(n-10000*a-1000*b-100*c)/10;
        e=n-10000*a-1000*b-100*c-10*d;
        if(a!=0)
        {
            cout<<5<<endl;
            cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
            cout<<e<<d<<c<<b<<a;
        }
        else if(b!=0)
        {
            cout<<4<<endl;
            cout<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
            cout<<e<<d<<c<<b;
        }
        else if(c!=0)
        {
            cout<<3<<endl;
            cout<<c<<" "<<d<<" "<<e<<endl;
            cout<<e<<d<<c;
        }
        else if(d!=0)
        {
            cout<<2<<endl;
            cout<<d<<" "<<e<<endl;
            cout<<e<<d;
        }
        else
        {
            cout<<1<<endl;
            cout<<e<<endl;
            cout<<e;
        }
     
    }

    Description

    输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

    Input

    一行字符

    Output

    统计值

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        string a;
        getline(cin,a);
        int zimu=0,shuzi=0,kongge=0,qita=0;
        for(int i=0;i!=a.size();i++)
        {
            if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
                zimu++;
            else if(a[i]>='0'&&a[i]<='9')
                shuzi++;
            else if(a[i]==' ')
                kongge++;
            else
                qita++;
        }
        cout<<zimu<<" "<<shuzi<<" "<<kongge<<" "<<qita;
        return 0;
    }


    Description


    观察下面的算式:

    * * × * * = * * *

    它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:

    所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。

    比如:13 x 15 = 195

    题目的任务是:编写程序,找到所有可能的情况。

    Input

    Output

    输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题。每行的格式如:
    13 x 15 = 195
    其中乘号用“x”表示。

    #include <iostream>
    using namespace std;
    int main()
    {
        int a,a1,a2,b,b1,b2,n1,n2,result,result1,result2,result3;
        for(a=11;a<=99;a++)
        {
            n1=a;
            a1=n1/10;
            a2=n1-a1*10;
            for(b=11;b<=99;b++)
            {
                n2=b;
                b1=n2/10;
                b2=n2-b1*10;
                if(a1%2!=0&&a2%2!=0&&b1%2!=0&&b2%2!=0)
     
                {
                    result=n1*n2;
                    if(result/1000==0&&result/100!=0)
                    {
                        result1=result/100;
                        result2=(result-result1*100)/10;
                        result3=result-result2*10-result1*100;
                        if(result1%2!=0&&result2%2!=0&&result%2!=0)
                        cout<<n1<<" "<<"X"<<" "<<n2<<" "<<"="<<" "<<result<<endl;
                    }
                }
            }
     
     
        }
        return 0;
    }

    Description


        30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!

        给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。

        这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:

        1. 如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。

        2. 前三个数字相同,或后三个数字相同,都加3分。例如:4888,6665,7777都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了6分。

        3. 符合AABB或者ABAB模式的加1分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了2分。

        4. 含有:6,8,9中任何一个数字,每出现一次加1分。例如4326,6875,9918都符合加分标准。其中,6875被加2分;9918被加3分。

        尾号最终得分就是每条标准的加分总和!

    Input

    第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。

    Output

    n行整数。


    #include <iostream>
    using namespace std;
    int main()
    {
        int n,i,number;
        int a,b,c,d,sum=0;
        cin>>n;
        for(i=1;i<=n;i++)
        {
            cin>>number;
            a=number/1000;
            b=(number-1000*a)/100;
            c=(number-100*b-1000*a)/10;
            d=number-10*c-100*b-1000*a;
            if(a-b==-1&&b-c==-1&&c-d==-1)
                sum=sum+5;
            if(a-b==1&&b-c==1&&c-d==1)
                sum=sum+5;
            if(a==b&&b==c)
                sum=sum+3;
            if(b==c&&c==d)
                sum=sum+3;
            if(a==b&&c==d)
                sum=sum+1;
            if(a==c&&b==d)
                sum=sum+1;
            if(a==6||a==8||a==9)
                sum=sum+1;
            if(b==6||b==8||b==9)
                sum=sum+1;
            if(c==6||c==8||c==9)
                sum=sum+1;
            if(d==6||d==8||d==9)
                sum=sum+1;
            cout<<sum;
            sum=0;
            cout<<endl;
        }
    }


  • 相关阅读:
    实验六:空间耗尽故障
    实验四 :重置root密码
    实验三:误删boot恢复
    实验二: grub引导故障修复
    实验一 :MBR扇区故障系统备份与还原
    chapter07
    chapter06
    chapter05
    转-SQL数据库中把一个表中的数据复制到另一个表中
    Howto: 如何通过IIS7为ArcGIS Server配置反向代理系统架构
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697870.html
Copyright © 2011-2022 走看看