zoukankan      html  css  js  c++  java
  • 20161016 水题大作战

    1130 数字反转

     

    2011年NOIP全国联赛普及组

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形
    式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零.

    输入描述 Input Description

    输入共 1 行,一个整数N

    输出描述 Output Description

    输出共 1 行,一个整数,表示反转后的新数。

    样例输入 Sample Input

    -380

    样例输出 Sample Output

    -83

    数据范围及提示 Data Size & Hint

    数据范围
    -1,000,000,000 ≤ N≤ 1,000,000,000。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    const int N=1e4+10;
    char s[N];
    int main(){
        scanf("%s",s);
        int len=strlen(s)-1;
        while(s[len]=='0') len--;
        if(s[0]!='-'){
            for(int i=len;i>=0;i--) putchar(s[i]);
        } 
        else{
            putchar('-');
            for(int i=len;i;i--) putchar(s[i]);
        }
        return 0;
    }

    1126 数字统计

     

    2010年NOIP全国联赛普及组

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

    比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。

    数据范围 1 ≤ L ≤ R≤ 10000。

    输入描述 Input Description

    输入共1 行,为两个正整数L 和R,之间用一个空格隔开。

    输出描述 Output Description

    输出共1 行,表示数字2 出现的次数。

    样例输入 Sample Input

    2 22

    样例输出 Sample Output

    6

    数据范围及提示 Data Size & Hint
     

    分类标签 Tags 点此展开 

     
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    const int N=1e4+10;
    int l,r,sum;
    int main(){
        scanf("%d%d",&l,&r);
        for(int i=l,t;i<=r;i++){
            t=i;
            while(t){
                if(t%10==2) sum++;
                t/=10;
            }
        }
        printf("%d",sum);
        return 0;
    }

    1146 ISBN号码

     

    2008年NOIP全国联赛普及组

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。

    识别码的计算方法如下:

    首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。

    你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。

    输入描述 Input Description

    只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

    输出描述 Output Description

    共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。

    样例输入 Sample Input

    输入1:

    0-670-82162-4

    输入2:

    0-670-82162-0

    样例输出 Sample Output

    输出1:

    Right

    输出2:

    0-670-82162-4

    数据范围及提示 Data Size & Hint
     

    分类标签 Tags 点此展开 

     
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    char s[31];
    int a[31],ans=0;
    int main(){
        memset(a,-1,sizeof(a));
        scanf("%s",s);
        for(int i=0;i<13;i++){
            if(s[i]=='X') a[i]=10;
            else if(s[i]>='0'&&s[i]<='9') a[i]=s[i]-'0';
        }
        int zj=1;
        for(int i=0;i<12;i++) if(a[i]!=-1) ans+=a[i]*zj,zj++;
        int w=ans%11;
        if(a[12]==w) {printf("Right
    ");return 0;}
        for(int i=0;i<12;i++) cout<<s[i];
        if(w==10) cout<<'X'<<endl;
        else cout<<w<<endl;
        return 0;
    }

    1262 不要把球传我

     

    2012年CCC加拿大高中生信息学奥赛

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    CCC的足球比赛和传统的足球比赛有一点不同, 一次进球当且仅当先后接触到球的4名队员的球衣编号是升序排列的。

    球员的球衣编号从过1到99,并且每个人的编号都不同。

    给出最后得分球员的球衣编号,请计算出有多少合法的球员组合能够产生这一进球。

    输入描述 Input Description

    输入一个整数1<=J<=99,代表进球球员的球衣编号

    输出描述 Output Description

    输出只有一行,包含一个整数代表有多少种组合能够使得最后进球的球员编号为J。

    样例输入 Sample Input

    样例输入 1: 4

    样例输入 2: 2

    样例输入 3: 90

    样例输出 Sample Output

    样例输出 1: 1

    样例输出 2: 0

    样例输出 3: 113564

    数据范围及提示 Data Size & Hint

    分类标签 Tags 点此展开 

     
    #include<cstdio>
    using namespace std;
    int n;
    int main(){
        scanf("%d",&n);
        if(n<4) puts("0");
        else printf("%d",(n-1)*(n-2)*(n-3)/6);
        return 0;
    }
  • 相关阅读:
    poj3617Best Cow Line
    Apache Thrift的简单使用
    UIControl-IOS开发
    怎样学习嵌入式
    JAVA学习第六十二课 — TCP协议练习
    腾讯2014年实习生招聘笔试面试经历
    一分钟明确 VS manifest 原理
    国外破解站点大全
    Android 4.4 KitKat NotificationManagerService使用具体解释与原理分析(一)__使用具体解释
    linux中fork()函数具体解释(原创!!实例解说)
  • 原文地址:https://www.cnblogs.com/shenben/p/5967799.html
Copyright © 2011-2022 走看看