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;
    }
}


原文地址:https://www.cnblogs.com/sr1993/p/3697870.html