每天一练——牛客网基础语法(10)

发布时间:2022-08-19 12:21

 刷题刷题刷题!!!

每天一练——牛客网基础语法(10)_第1张图片

目录

91.水仙花数

92.变种水仙花

93.公务员面试

94.反向输出一个四位数

95.小乐乐与进制转换

96.  [NOIP2015]金币

97. 回文对称数

98.线段图案

99.正方形图案

100. 直角三角形图案

结尾


91.水仙花数

描述:春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。

输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。

输出描述:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。

示例:

输入:100 120

           300 380

输出:no   

           370 371

#include
#include
#include
int main()
{
    int a,b;
    while(~scanf("%d %d",&a,&b))
    {
        int i=0;
        i=a;
        int flag=0;
        while(i++<=b)
        {
            if(pow(i/100,3)+pow((i%100)/10,3)+pow(i%10,3)==i)
            {
                flag++;
            if(flag==1)
                printf("%d",i);
            else if(flag>1)
                printf(" %d",i);
            }
        }
            if(flag==0)
        printf("no\n");
        else
            printf("\n");
    }
    return 0;
}

92.变种水仙花

描述:

变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。

例如:

655 = 6 * 55 + 65 * 5

1461 = 1*461 + 14*61 + 146*1

求出 5位数中的所有 Lily Number。

输入描述:无

输出描述:一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。

#include
int main()
{
    int i,j;
    for(i=10000;i<100000;i++)
    {
        int sum=0;
        for(j=10;j<=10000;j=j*10)
        {
            sum=sum+(i/j)*(i%j);
        }
        if(sum==i)
            printf("%d ",i);
    }
    return 0;
}

93.公务员面试

描述:

公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。(注:本题有多组输入)

输入描述:每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。

输出描述:每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。

示例:        输入:99 45 78 67 72 88 60

                   输出:73.00

#include
int main()
{
    int n,max=0,min=100,sum=0,count=0;
    while(~scanf("%d",&n))
    {
        if(n>max)
        {
            max=n;
        }
        if(n

94.反向输出一个四位数

描述:将一个四位数,反向输出。

输入描述:一行,输入一个整数n(1000 <= n <= 9999)。

输出描述:针对每组输入,反向输出对应四位数。

示例:输入:1234

           输出:4321

#include
int main()
{
    int n;
    scanf("%d",&n);
    while(n)
    {
        printf("%d",n%10);
        n/=10;
    }
    return 0;
}

95.小乐乐与进制转换

描述:小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

输入描述:输入一个正整数n  (1 ≤ n ≤ 10^9)

输出描述:输出一行,为正整数n表示为六进制的结果

示例:输入:6

           输出:10

#include
int main()
{
    int n;
    int arr[100]={0};
    int count=0;
    int s=0;
    scanf("%d",&n);
    if(n==0)
    {
        count=1;
        arr[count]=0;
    }
    while(n)
    {
        count++;
        arr[count]=n%6;
        n/=6;
    }
    for(int i=count;i>0;i--)
    {
        printf("%d",arr[i]);
    }
    return 0;
}

96.  [NOIP2015]金币

描述:国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。

请计算在前K天里,骑士一共获得了多少金币。

输入描述:输入只有1行,包含一个正整数K,表示发放金币的天数。

输出描述:输出只有1行,包含一个正整数,即骑士收到的金币数。

示例:输入:6

           输出:14

说明:骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。

#include
int main()
{
    int k,i,j,b=0,sum=0;
    scanf("%d",&k);
    for(i=1;b

97. 回文对称数

描述:今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。

输入描述:输入一个整数n(1 <= n <= 100000)

输出描述:从1开始按从小到大的顺序输出所有回文数

示例:        输入:10    输出:1 2 3 4 5 6 7 8 9 

#include
int sum(int x)
{
    int temp=0;
    while(x!=0)
    {
        temp*=10;
        temp=temp+x%10;
        x/=10;
    }
    return temp;
}

int main()
{
    int i,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        if(i==sum(i))
            printf("%d\n",i);
    }
    return 0;
}

98.线段图案

描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。

输入描述:多组输入,一个整数(1~100),表示线段长度,即“*”的数量。

输出描述:针对每行输入,输出占一行,用“*”组成的对应长度的线段。

示例:输入:10

                      2
           输出:**********
                      **

#include
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

99.正方形图案

描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正方形图案。

输入描述:多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。

输出描述:针对每行输入,输出用“*”组成的对应边长的正方形,每个“*”后面有一个空格。

#include
int main()
{
    int i,j,n;
    while(~scanf("%d",&n))
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    
    return 0;
}

100. 直角三角形图案

描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。

输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。

输出描述:针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。

示例:输入:4

           输出:

*

* *
* * *
* * * *

#include
int main()
{
    int n,j,i;
    while(~scanf("%d",&n))
    {
        for(i=1;i

结尾

 期待你们的关注,我会更努力去做好每一个知识点,谢谢!!

 我是Try_harder,正在磕磕绊绊中成长~~

送上小心心吧!!

每天一练——牛客网基础语法(10)_第2张图片

 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号