关于c:蓝桥杯cPython每日练习每日刷题day9流浪的小灰灰数小灰分苹果

2次阅读

共计 2420 个字符,预计需要花费 7 分钟才能阅读完成。

一,漂泊的小灰

题目形容

小灰,是一只出世在逸夫楼 (大略是吧╮(╯▽╰)╭) 的老鼠。它从小就受到各个科技类社团的陶冶,精通 c /c++ 等语言的编译器装置,精通 Windows、Unix、linux 等操作系统的开关机,是一只有文化的老鼠。它始终在逸夫楼到处游荡,寻找一个和煦的家。

有一天,他发现了 ACM 程序设计协会这个小家庭。在无数次目击过协会成员们舒适的日常生活后,小灰终于按捺不住心中的激动,决定退出 ACM 协会,成为一只 ACMer(^o^/)。然而,退出协会是须要通过考试的,摆在小灰背后的是一道数学题,题目如下:

给出两个数字 A 和 B,两个数字之间用”+”“-”“”“/”连贯,如果给出的是 A +B, 则计算(A-B)的值;如果给出的是 A -B,则计算(A+B)的值;如给出的是 A /B,则计算(AB)的值;如果给出的是 A *B,则计算(A/B)的值。(你这是在难为我小灰(╯‵□′)╯︵┻━┻)

这道题对于小灰来说太过于麻烦,所以它找到了聪慧的你,请你帮帮它吧!

输出

输出数据仅有一行,蕴含一个形如 A + B 的式子。

输入

请你输入计算结果,不要蕴含多余的空格和换行。

样例输出

1+1

样例输入

0

提醒

题目保障输出数据为正整数且计算结果在 int 范畴内。

对于除法保障不会呈现除零谬误,运算后果间接保留整数局部即可。
c++ 解法:

#include<bits/stdc++.h>
using namespace std;
int main()
{char a[10000];
    scanf("%s",a);
    int len,l=0;
    len=strlen(a);
    int flag1=0,flag2;
    for(int i=0;i<len;i++)
    {if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
        {
            flag1=i;
            break;
        }
    }
    char b[10000];
    for(int j=flag1+1;j<len;j++)
    {b[l]=a[j];
        l++;
    }
    long long c,d;
    c=atoi(a);
    d=atoi(b);
    if(a[flag1]=='+')
    {cout<<c-d;}
    if(a[flag1]=='-')
    {cout<<c+d;}
    if(a[flag1]=='/')
    {cout<<c*d;}
    if(a[flag1]=='*')
    {cout<<c/d;}
    return 0;
}

心得:
应用 atoi 函数。
atoi()函数的性能:将字符串转换成整型数;atoi()会扫描参数 nptr 字符串,跳过后面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时(’\0’)才完结转化,并将后果返回(返回转换后的整型数)。

二,灰数

题目形容

小灰是一只灰鼠,灰鼠有一个灰数,灰数来自于灰鼠,灰鼠想求出灰数···……

不要问我为什么这次不是小灰求算数题,你们总是让小灰做算数、剪树叶、拼拼图,小灰曾经累了,小灰不想做题,小灰只想做一只宁静的小灰鼠,然而你们想过小灰的的感触吗,没有!你们只想着让小灰做题·····……^o^/ 我没疯 ^o^/ 放开我……………(拖走ヽ(゜▽゜)-C<(/;◇/~)

灰数,是小灰家祖传的数字,它满足以下性质

1. 是一个奇数

2. 对自身在二进制状态下 1 的个数取余后果为 0

3. 是一个正整数

例如:数字 21, 是一个正整数,且是奇数,转为二进制数为 10101,其中有 3 个 1,21%3==0,所以它是一个灰数。

当初给出范畴 n -m(n<=m)请你求出大小在 n 和 m 之间的所有灰数。

输出

每个测试点仅蕴含一组数据,每组数据的输出有一行,蕴含两个正整数 n,m,示意所求值的范畴

输入

请输入所有合乎 {i 为灰数 |n<=i<=m} 的数字,每行输入一个,若没有符合条件的数字则输入一个 ”emmmm…I don’t know what to output! “。不得输入多余的空格和换行

样例输出
1 21
样例输入
1
21

提醒

1<=m<=1000

1<=n<=m

若无适合的值则输入“emmmm…I don’t know what to output!”,留神大小写和标点符号!
c++ 代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int b[10000],l=0;
    while(a)
    {b[l]=a%2;
        a/=2;
        l++;
    }
    for(int i=0;i<l;i++)
    {cout<<b[i];
    }
}

心得:多进制的转换

三,小灰分苹果

题目形容

发水果了(^o^/)^o^/
小灰最近购进了一批苹果,想要分给所有成员。然而这些苹果的大小不同,本着偏心的准则,小灰决定按成员的体重来调配苹果,体重最大的人抉择最大的苹果,体重次大的人抉择第二大的苹果,以此类推,请你求出第 k 大的苹果大小是多少。

输出
每个测试点蕴含多组输出数据,数据的第一行有一个整数 t,示意有 t 组数据,每组数据的第一行有两个整数 n,k,别离示意苹果的数量和所求的是第 k 大的苹果,接下来的一行有 n 个用空格隔开的数字,别离示意 n 个苹果的大小。

输入

输入包含 t 行,每行一个整数示意第 k 大的苹果的大小
样例输出

1
5 3
1 5 4 2 3

样例输入

3

提醒

1<=t<=5

1<=n<=100

1<=k<=n
c++ 解法:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x;
    cin>>x;
    int c[1000],c1=0;
    while(x--)
    {int a[1000],f=0;
        int n,k;
        cin>>n>>k;
        for(int i=0;i<n;i++)
        {cin>>a[i];
        }
        sort(a,a+n,greater<int>());
        c[c1]=a[k-1];
        c1++;
       for(int i=0;i<n;i++)
        {a[i]=0;
        }

    }
    for(int i=0;i<c1-1;i++)
    {cout<<c[i]<<endl;
    }
    cout<<c[c1-1];
return 0;
}

心得:
sort 函数的从大到小,从小到大排序。

正文完
 0