小王子

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

小王

描述

编写程序,求给定字符串s的亲朋字符串s1。

亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符; 给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最 后一个字符由给定字符串s的最后一个字符ASCII值加s的第一个字符的ASCII值。

输入

输入一行,一个长度大于等于2,小于等于100的字符串。字符串中每个字符的ASCII值不大于63。

输出

输出一行,为变换后的亲朋字符串。输入保证变换后的字符串只有一行。

样例输入

1234

样例输出

cege

题解

cpp

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
    char a[9999];
    int b = 0,c = 0;
    cin.getline(a,200);
    c = a[0];
    b = strlen(a);
    for (int i = 0,j = 1;i < b;i++,j++)
        a[i] = a[i] + a[j];
    a[b - 1] += c;
    cout << a;
    return 0;
}
3年前 (02月13日)
小王

描述

石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布。

现在,需要你写一个程序来判断石头剪子布游戏的结果。

输入

输入包括N+1行:
第一行是一个整数N,表示一共进行了N次游戏。1 <= N <= 100。
接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布):
S1 S2
字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中。

输出

输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。

样例输入

3
Rock Scissors
Paper Paper
Rock Paper

样例输出

Player1
Tie
Player2

提示

Rock是石头,Scissors是剪刀,Paper是布。

题解

cpp

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    int n;
    char a[999],b[999];
    cin >> n;
    for(int i = 0;i < n;i++) 
    { 
        cin >> a >> b;
        if(a[0]=='R' && b[0]=='S' || a[0]=='S' && b[0]=='P' ||a[0]=='P' && b[0]=='R')
            cout<<"Player1"<<endl;
        else if(a[0]==b[0])
            cout<<"Tie"<<endl;
        else
            cout<<"Player2"<<endl;
    }
    return 0;
}
3年前 (02月12日)
小王

描述

输入一行字符,统计出其中数字字符的个数。

输入

一行字符串,总长度不超过255。

输出

输出为1行,输出字符串里面数字字符的个数。

样例输入

Peking University is set up at 1898.

样例输出

4

题解

cpp

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
    char a[9999];
    int b = 0,c = 0;
    cin.getline(a,300);
    b = strlen(a);
    for (int i = 0;i < b;i++) 
    { 
        if (a[i] >= '0' && a[i] <= '9')
            c++;
    }
    cout << c;
    return 0;
}
3年前 (02月11日)
小王

描述

为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。
现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。

输入

有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。

输出

若两条DNA序列相关,则输出“yes”,否则输出“no”。

样例输入

0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC

样例输出

yes

题解

cpp

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
    double b = 0,s = 0,e = 0;
    char a[999],c[999];
    cin >> e;
    cin >> a >> c;
    b = strlen(a);
    for (int i = 0;i < b;i++) 
    {
        if (a[i] == c[i]) 
            s++; 
    } 
    if (s / b >= e)
        cout << "yes";
    else
        cout << "no";
    return 0;
}
3年前 (02月11日)
老王

题目描述

在校园里,没有自行车,上课办事会很不方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。如果骑车快,输出一行”Bike”;如果走路快,输出一行”Walk”;如果一样快,输出一行”All”。
要求用switch语句,不用if。

输入

输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。

输出

输出一行,如果骑车快,输出一行”Bike”;如果走路快,输出一行”Walk”;如果一样快,输出一行”All”。

输入样例

120

输出样例

Bike

题解

cpp

#include <iostream>
using namespace std;
int main()
{
    double a = 0,t1 = 0,t2 = 0,b = 0,c = 0;
    cin>>a;
    t1 = a / 3 + (23 + 27);
    t2 = a / 1.2;
    switch (t1 > t2)
    {
        case 1:cout<<"Walk";break;
        case 0:switch (t1 == t2)
        {
            case 1:cout<<"All";break;
            default:cout<<"Bike";
        }

    }
    return 0;
}
3年前 (01月05日)
小王

问题描述

某饮料公司最近推出了一个”收集瓶盖赢大奖”的活动:如果你拥有10个印有”幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。
现分别给出你拥有的印有”幸运”和“鼓励”的瓶盖数,如果可以兑奖,计算可兑奖的数量。如果不能兑奖,输出最少再买多少瓶才可以兑奖。

输入

一行,包含两个整数,分别是印有“幸运”和”鼓励”的瓶盖数,用一个空格隔开。

输出

一行。如果可以兑奖,计算可兑奖的数量。如果不能兑奖,输出最少再买多少瓶才可以兑奖。

样例输入

11 19

样例输出

1

题解

cpp

#include <iostream>
using namespace std;
int main()
{
    int px = 10, px1 = 0, px2 = 0, pg = 20, pg1 = 0, pg2 = 0, n = 0, n1 = 0, n2 = 0;
    cin>>px1>>pg1;
    if (px1 >= px || pg1 >= pg)
    {
        px2 = px1 / px;
        pg2 = pg1 / pg;
        n = px2 + pg2;
        cout<<"可以兑奖,可以兑换"<<n<<"个神秘大奖!";
    }
    else
    {
        n1 = px - px1;
        n2 = pg - pg1;
        if (n1 <= n2)
            cout<<"不可以兑奖,至少还需要"<<n1<<"个瓶盖。";
        else
            cout<<"不可以兑奖,至少还需要"<<n2<<"个瓶盖。";
    }
    return 0;
}
3年前 (12月28日)
小王

问题描述

读取三个浮点数AB和C并验证是否可以用它们形成三角形。
如果可能,则计算并输出三角形的周长:
Perimetro = xx.x

如果不可能,则计算并输出以A和B为底以C为高的梯形面积:
Area = xx.x

输入格式

共一行,包含三个浮点数ABC。

输出格式

按题目描述格式,输出答案,答案保留一位小数。

数据范围

0<A,B,C<100.0

输入样例1

6.0 4.0 2.0

输出样例

Area = 10.0

题解

cpp

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    double A = 0,B = 0,C = 0,l = 0,s = 0;
    scanf("%lf %lf %lf",&A,&B,&C);
    if (A <= C && B <= C && A + B > C || B <= A && A <= A && C + B > A || A <= B && C <= B && C + A > B)
    {
        l = A + B + C;
        cout<<"Perimetro = ";
        printf("%.1lf",l);
    }
    else
    {
        s =(A + B) * C / 2;
        cout<<"Area = ";
        printf("%.1lf",s);
    }
    return 0;
}
3年前 (12月26日)
老王

题目描述

三个整数分别为ABC。这三个数字不会按照这样的顺序给你,但它们始终满足条件: A < B < C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

输入格式

第一行包含三个正整数ABC,不一定是按这个顺序。这三个数字都小于或等于100。第二行包含三个大写字母AB和C(它们之间没有空格)表示所需的顺序。

输出格式

在一行中输出A,B和C,用一个(空格)隔开。

输入输出样例

样例输入 #1

1 5 3
ABC

样例输入 #2

6 4 2
CAB

样例输出 #1

1 3 5

样例输出 #2

6 2 4

题解

cpp

#include <iostream>
using namespace std;
int main()
{
    int a = 0,b = 0,c = 0,x = 0,z = 0,d = 0;
    char p,e,f;
    cin>>a>>b>>c;
    cin>>p>>e>>f;
    if (a <= b && a <= c)
        x = a;
    else if (b <= a && b <= c) 
        x = b; 
    else 
        x = c; 
    if (a >= b && a >= c)
        d = a;
    else if (b >= a && b >= c)
        d = b;
    else
        d = c;
    z = a + b + c - x - d;
    if (p == 'A' && e == 'B' && f == 'C')
        cout<<x<<" "<<z<<" "<<d;
    else if (p == 'A' && e == 'C' && f == 'B')
        cout<<x<<" "<<d<<" "<<z;
    else if (p == 'B' && e == 'A' && f == 'C')
        cout<<z<<" "<<x<<" "<<d;
    else if (p == 'B' && e == 'C' && f == 'A')
        cout<<z<<" "<<d<<" "<<x;
    else if (p == 'C' && e == 'A' && f == 'B')
        cout<<d<<" "<<x<<" "<<z;
    else
        cout<<d<<" "<<z<<" "<<x;
    return 0;
}
3年前 (12月25日)