【牛客刷题】/*开胃菜——简单四道编程题*/

简介: 【牛客刷题】/*开胃菜——简单四道编程题*/

🎋🎋hello,大家好!学习编程语言的过程中我们不仅要学好语法,更要通过刷题来提高对知识的掌握熟练度,那么今天就给大家分享四道编程小题,方便大家卷的很累的时候开个小胃!🍱🍱

🛸🛸老规矩,看完麻烦一键三连支持一下啦!🦀🦀

🍎问题描述

   🍊输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。

🍎输入描述:

输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。

🍓输出描述:

输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。

🍋示例1

🍼输入:

   5 6

   1 3 7 9 22

   2 8 10 17 33 44

🍖输出:

   1 2 3 7 8 9 10 17 22 33 44

🍏🍏代码实现:

   #include<stdio.h>

   int main()

   {

       int n, m;

       scanf("%d %d\n", &n, &m);

       int i, j,arr[2000];

       int tmp;

       for(i=0; i<n; i++)

       {

           scanf("%d ", &arr[i]);

       }

       for(i=n; i<n+m; i++)

       {

           scanf("%d ", &arr[i]);

       }

       for(i=0; i<n+m; i++)

       {

           for(j=0; j<n+m-i-1; j++)

           {

               if(arr[j] > arr[j+1])

               {

                   tmp = arr[j];

                   arr[j] = arr[j+1];

                   arr[j+1] = tmp;

               }

           }

       }

       for(i=0; i<n+m; i++)

       {

           printf("%d ", arr[i]);

       }

   }

   🍐🍐代码解读:根据题目要求,我们定义两个变量m,n,一个数组arr,首先我们通过两个for循环来输入我们要排序的元素,然后通过if+条件判断来交换元素的顺序,最后循环打印出我们的结果就可以了,非常简单🍔🍔

二、更改0/1数字

🛥️🛥️问题描述:

   小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

🚁🚁输入描述:

输入包含一个整数n (0 ≤ n ≤ 109)

⛴️⛴️输出描述:

输出一个整数,即小乐乐修改后得到的数字。

🚢🚢示例1

输入:

222222

输出:

0

🛷🛷示例2

🍢输入:

123

🍡输出:

101

🍵问题分析:那么题目要求我们将偶数位置全部置为0,奇数位全部置为1,那么通过%2取余法便可解决,一个n位数的每一位我们也可设计方法求解,请看代码:

   #include<math.h>

   #include<stdio.h>

   int main()

   {

    int n = 0;

    int sum = 0;

    int ret = 0;

    int i = 0;

    scanf("%d", &n);

    while (n)

    {

     sum = n%10;

     if (sum %2 == 0)

     {

      sum = 0;

     }

     else

     {

      sum = 1;

     }

     ret += sum * pow(10, i++);

     n /= 10;

    }

     printf("%d ", ret);

   

   }

三、带空格直角三角形图案

🚞🚞问题描述:

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

🚈输入描述:

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

🚄输出描述:

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

🚉🚉示例1

🍧输入:

5

🍱输出:

           *  

         * *  

       * * *  

     * * * *  

   * * * * *

🛩️🛩️示例2

☕输入:

4

🍯输出:

         *  

       * *  

     * * *  

   * * * *

⛵⛵代码实现:

   #include<stdio.h>

   int main()

   {

    int a = 0;

    while (scanf("%d", &a)!=EOF)

    {

     int i = 0;

     int s = 0;

     for (s = 0; s < a; s++)

     {

      for (i = 0; i < (a- s - 1); i++)

      {

       printf("  ");

      }

      for (int j = 0; j <= s; j++)

      {

       printf("* ");

      }

      printf("\n");

     }

    }

   }

✈️✈️代码解读:

   这题的关键在于我们可以把一个*和一个空格当做一个元素来看待,printf("  ")和printf("* ")当做一个元素来看,由于是一个正方形的右半边(三角形),所以我们先通过for循环打印两个空格,然后在依次打印* 便可。🍶🍶

四、简单网购

🚤🚤问题描述:

   KiKi非常喜欢网购,在一家店铺他看中了一件衣服,他了解到,如果今天是“双11”(11月11日)则这件衣服打7折,“双12” (12月12日)则这件衣服打8折,如果有优惠券可以额外减50元(优惠券只能在双11或双12使用),求KiKi最终所花的钱数。

🚟🚟输入描述:

   一行,四个数字,第一个数表示小明看中的衣服价格,第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券(有优惠券用1表示,无优惠券用0表示)。 注:输入日期保证只有“双11”和“双12”。

🍻🍻输出描述:

一行,小明实际花的钱数(保留两位小数)。(提示:不要指望商家倒找你钱)

🍬示例1

🍭输入:

   1000.0 11 11 1

🍫输出:

   650.00

    🍤🍤问题思路非常简单,我们依次输入商品价格,然后通过if条件语句判断,要注意的点是我们每次判断之后都要输入我们的结果,因为判断完毕后程序就结束了,已经达到我们的预期效果了,还有就是要注意控制输出格式,保留两位小数,用   %.2f   !!!🍼🍼

🍇🍇代码实现:

   #include<stdio.h>

   int main()

   {

    float a = 0;

    int b, c, d;

    scanf("%f %d %d %d", &a, &b, &c, &d);

   

    if (b == 11 && c == 11)

    {

     a *= 0.7;

     if (d == 1)

     {

      a -= 50;

      if (a <= 0)

      {

       float  a = 0;

       printf("%.2f", a);

   

      }

      else

      {

       printf("%.2f", a);

      }  

     }

     else

     {

      printf("%.2f", a);

     }

   

    }

   

    else if (b == 12 && c == 12)

    {

     a *= 0.8;

     if (d == 1)

     {

      a -= 50;

      if (a <= 0)

      {

       float  a = 0;

       printf("%.2f", a);

      ;

      }

      else

      {

       printf("%.2f", a);

      }  

     

     }

     else

     {

      printf("%.2f", a);

     }  

   

    }

     else

     {

      printf("输入错误\n");

     }

    return 0;

   }

相关文章
|
Ubuntu Linux C++
Ubuntu20.4配置arm交叉编译环境
我是在虚拟机中配置的,如果你的嵌入式设备足够完成自己的编译,可以不考虑虚拟机的。
1545 0
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
538 0
|
8月前
|
并行计算 Ubuntu Docker
kTransformers DeepSeek R1 部署全流程指南
kTransformers DeepSeek R1 部署全流程指南
|
Kubernetes 持续交付 Go
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
[java进阶]——stream流你还不会用吗?超详细使用介绍
[java进阶]——stream流你还不会用吗?超详细使用介绍
307 0
|
JavaScript
Vue3和Vue2中 v-if 和v-for的区别
Vue3和Vue2中 v-if 和v-for的区别
277 0
|
弹性计算 运维 安全
RAM账号权限管理
希望通过本次演讲,让大家更深入了解RAM账号权限管理,以某电商网站项目为例,根据研发、测试、生产环境划分及业务流程,使用阿里云RAM访问控制服务规划实现资源分组、账号用户体系、权限分配、安全加固、定期安全检查等措施的最佳实践。
2648 1
RAM账号权限管理
|
消息中间件 存储 算法
Python数据结构——队列
Python数据结构——队列
253 0
|
存储 弹性计算 移动开发
阿里云无影云电脑快速上手教程(保姆级)
阿里云无影云电脑快速上手教程(保姆级)阿里云无影云桌面即无影云电脑,云电脑如何使用?云电脑购买后没有用户名和密码,先创建用户设置密码,才可以登录连接到云电脑。云电脑想要访问公网还需要开通互联网访问功能。阿里云百科来详细说下阿里云无影云电脑从购买、创建用户名密码和访问互联网全过程
905 0
|
存储 负载均衡 算法
扒一扒Nacos、OpenFeign、Ribbon、loadbalancer组件协调工作原理
前几天有个大兄弟问了我一个问题,注册中心要集成SpringCloud,想实现SpringCloud的负载均衡,需要实现哪些接口和规范。