小王子

聆听小王子,守望成长,静待花开

老王

紧跟潮流,把说说列表整成了朋友圈模式,技术限制了想象力,只好弄了个简易版!

2年前 (09月08日)
阿和
  • 阿和 : 来张沙发
  • 小王

    题目描述

    两个相差为 2 的素数称为素数对,如 5 和 7,17 和 19 等,本题目要求找出所有两个数均不大于 n 的 素数对。

    输入

    一个正整数 n。1 <= n <= 10000。

    输出

    所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数 对,输出 empty。

    样例输入

    100

    样例输出

    3 5
    5 7
    11 13
    17 19
    29 31
    41 43
    59 61
    71 73

    题解

    cpp
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    bool isprime(int x)
    {
        if (x < 2) 
            return false;
        for (int i = 2;i < x;i++) 
        { 
            if (x % i == 0) 
                return false; 
        } 
        return true; 
    } 
    int main() { 
        int n,t,c; cin >> n;
        for (int i = 1;i <= n - 2;i++)
        {
            if(isprime(i))
            {
                if (isprime(i + 2))
                {
                    cout << i << " " << i + 2 << endl;
                    t = 1;
                }
            }
        }
        if (t == 0)
             cout << "empty";
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    151既是一个质数,又是一个回文数,因此它可以被称为回文质数。 现在给定两个整数 a,b ,请你找出在 [a,b] 范围内的所有回文质数。

    输入

    两个整数a和b(1 <= a <= b <= 100000)

    输出

    该 a 到 b 范围内所有的回文质数

    样例输入

    1 200

    样例输出

    3
    5
    7
    11
    101
    131
    151
    181
    191

    题解

    cpp
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cctype>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int i,j,s=0,a,b,t;
        cin>>a>>b;
        for(i=a;i<=b;i++)
        {
            t=i;
            while(t!=0)
            {
                s=s*10+t%10;
                t=t/10;
            }
            if(i==s)
            {
                for(j=2;j*j<=i;j++) 
                { 
                    if(i%j==0) 
                        break; 
                } 
                if(j*j>i)
                {
                    if (i == 1) continue;
                        cout<<i<<endl;
                }
            }
            s=0;
        }
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    一元 n 次多项式可用如下的表达式表示
    多项式输出
    给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1、多项式中自变量为 x,从左到右按照次数递减顺序给出多项式。
    2、多项式中只包含系数不为 0 的项。
    3、如果多项式 n 次项系数为正,则多项式开头不出现“+”号,如果多项式 n 次项系数为负,则多项 式以“-”号开头。
    4、对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正或者系数 为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于 0 次的项,其系数的绝对值为 1,则 无需输出 1)。如果 x 的指数大于 1,则接下来紧跟的指数部分的形式为“xb”,其中 b 为 x 的指数; 如果 x 的指数为 1,则接下来紧跟的指数部分形式为“x”;如果 x 的指数为 0,则仅需输出系数即可。 5、多项式中,多项式的开头、结尾不含多余的空格。

    输入格式

    输入文件共有 2 行。
    第一行有 1 个整数 n,表示一元多项式的次数。
    第二行有 n+1 个整数,其中第 i 个整数表示第 n−i+1 次项的系数,每两个整数之间用空格隔开。 多项式各次项系数的绝对值均不超过 100。

    输出格式

    输出文件共 1 行,按题目所述格式输出多项式。

    数据范围

    1≤n≤100

    输入样例

    5
    100 -1 1 -3 0 10

    输出样例

    100x^5-x^4+x^3-3x^2+10

    题解

    cpp
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cctype>
    #include <algorithm>
    using namespace std;
    int main()
    {
        int n = 0,a = 0;
        bool isf = true;//µ±Ç°ÕâÒ»ÏîÊÇ·ñΪ¿ªÍ·
        cin >> n;
        for (int i = n;i >= 0;i--)
        {
            cin >> a;
            if (a == 0) continue;
            if (isf == false && a > 0) cout << "+";
            if (a < 0) cout << "-";
            a = abs(a);
            if(a != 1 || i == 0) cout << a;
            if(i != 0) cout << "x"; if(i > 1) cout << "^" << i;
            isf = false;
        }
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。 其中 11 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。 华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白 11 分制和 21 分制对选手的 不同影响。 在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 11 分制和 21 分制下,双方的比赛结果(截至记录末尾)。
    比如现在有这么一份记录,(其中 W 表示华华获得一分,L 表示华华对手获得一分): WWWWWWWWWWWWWWWWWWWWWWLW
    在 11 分制下,此时比赛的结果是华华第一局 11 比 0 获胜,第二局 11 比 0 获胜,正在进行第 三局,当前比分 1 比 1。
    而在 21 分制下,此时比赛结果是华华第一局 21 比 0 获胜,正在进行第二局,比分 2 比 1。 如果一局比赛刚开始,则此时比分为 0 比 0。
    你的程序就是要对于一系列比赛信息的输入(WL 形式),输出正确的结果。

    输入格式

    每个输入文件包含若干行字符串(每行至多 20 个字母),字符串由大写的 W、L 和 E 组成。 其中 E 表示比赛信息结束,程序应该忽略 E 之后的所有内容。

    输出格式

    输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。 其中第一部分是 11 分制下的结果,第二部分是 21 分制下的结果,两部分之间由一个空行分隔。

    输入样例

    WWWWWWWWWWWWWWWWWWWW
    WWLWE

    输出样例

    11:0
    11:0
    1:1

    21:0
    2:1

    题解

    cpp
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    using namespace std;
    void work(string s,int k)
    {
        int a = 0,b = 0;
        for (int i = 0;i < s.size();i++) 
        { 
            if(s[i] == 'W') a++; 
            else b++; 
            if (max(a,b) >= k && abs(a - b) >= 2)
            {
                cout << a << ":" << b << endl;
                a = 0,b = 0;
            }
        }
        cout << a << ":" << b << endl; 
    } 
    int main() 
    { 
        string s; char c; while(cin >> c,c != 'E') s+=c;
        work(s,11);
        cout << endl;
        work(s,21);
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    每一本正式出版的图书都有一个 ISBN 号码与之对应。
    ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 – 是 分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4 就是一个标准的 ISBN 码。 ISBN 码的首位数字表示书籍的出版语言,例如 0 代表英语;第一个分隔符 – 之后的三位数字代表 出版社,例如 670 代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一 位为识别码。
    识别码的计算方法如下:
    首位数字乘以 1 加上次位数字乘以 2……以此类推,用所得的结果 mod11,所得的余数即为识别码, 如果余数为 10,则识别码为大写字母 X。
    例如 ISBN 号码 0-670-82162-4 中的识别码 4 是这样得到的:对 067082162 这 9 个数字,从 左至右,分别乘以 1,2,…,9,再求和,即 0×1+6×2+……+2×9=158,然后取 158mod11 的结果 4 作 为识别码。
    编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 Right;如果错误,则输 出是正确的 ISBN 号码。

    输入格式

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

    输出格式

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

    样例输入 #1

    0-670-82162-4

    样例输入 #2

    0-670-82162-0

    样例输出 #1

    Right

    样例输出 #2

    0-670-82162-4

    题解

    cpp
    
    #include <iostream>
    #include <cstring>
    using namespace std;
    int main()
    {
        string s;
        int j = 1,x = 0;
        cin >> s;
        for (int i = 0;i < s.size() - 1;i++)
        {
            if (s[i] != '-')
            {
                x += (s[i] - '0') * j;
                j++;
            }
        }
        x %= 11;
        char c = 'X';
        if (x < 10)
            c = x + '0';
        if (s[s.size() - 1] == c)
            cout << "Right";
        else
        {
            s[s.size() - 1] = c;
            cout << s;
        }
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?
    注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。
    统计标题字符数时,空格和换行符不计算在内。

    输入格式

    输入文件只有一行,一个字符串 s。
    输出格式 输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。 数据范围
    规定 |s| 表示字符串 s 的长度(即字符串中的字符和空格数)。 1≤|s|≤5,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。

    样例输入 #1

    123

    样例输入 #2

    Ca 45

    样例输出 #1

    3

    样例输出 #2

    4

    题解

    cpp
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cctype>
    #include <algorithm>
    using namespace std;
    int main()
    {
        string s;
        int a = 0;
        getline(cin,s);
        for (int i = 0;i < s.size();i++)
        {
            if (s[i] != ' ')
                a++;
        }
        cout << a;
        return 0;
    }
    
    3年前 (04月11日)
    小王

    题目描述

    输入一个句子(一行),将句子中的每一个单词翻转后输出。

    输入描述

    只有一行,为一个字符串,不超过 500 个字符。单词之间以空格隔开。

    输出描述

    翻转每一个单词后的字符串

    样例输入

    hello world

    样例输出

    olleh dlrow

    题解

    cpp
    
    #include <iostream>
    #include <cstring>
    using namespace std;
    int main()
    {
        string s;
        int n = 0;
        getline(cin,s);
        for (int i = 0;i < s.size();i++) { 
            if (s[i] == ' ') { 
                for (int j = i - 1;j >= n;j--)
                    cout << s[j];
                cout << " "; 
                n = i + 1; 
            } 
            if (i == s.size() - 1) { 
                for (int j = i;j >= n;j--)
                    cout << s[j];
            }
        }
        return 0;
    }
    
    
    3年前 (04月09日)