【CSDN编程竞赛·第四期】个人参赛经历和个人建议

简介: 大家好,我前不久参加了官方举办的CSDN编程比赛,官方举办了四期,第一期的时候没看到,错过了,后面的每一期我都参加了,总的感觉来说,还可以。下面我具体说说第四期相关经验吧。

1、小玉家的电费

时间限制:1000ms                        内存限制:256M

题目描述:

小玉家今天收到了一份电费通知单。上面写着:月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行;月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行;月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行。请根据电价规定,计算出应交的电费应该是多少。


输入描述:

输入一个整数,表示用电总计(单位以千瓦时计),不超过10000。


输出描述:

输出一个数,保留到小数点后1位(单位以元计,保留到小数点后一位)。


示例:

输入

267

输出

121.5


代码及思路:

题目言简意赅,纯签到,照着题目写就完事了.用c语言就可以实现,三个条件语句,这题比较简单。

#include <stdio.h>
float solution(int m){
float result;
if(m<=150)
result=m*0.4463;
else if (m<=400)
result=150*0.4463+(m-150)*0.4663;
else ;
// TODO: 请在此编写代码
return result;
}
int main() {
int m;
scanf("%d", &m);
float result = solution(m);
printf("%.1f", result);
return 0;
}

2、单词逆序

时间限制:1000ms                        内存限制:256M

题目描述:

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成, 你需要将这些部分逆序。 给定一个原字符串A,请返回逆序后的字符串。例,输入”I am a boy!“输出”boy! a am I“


输入描述:

输入一行字符串str。(1 <= strlen(str) <= 10000)


输出描述:

返回逆序后的字符串


示例:

输入

It's a dog!

输出

dog! a It's


代码及思路:

建立个二维数组就可以,函数原型:int wordReverse(char s,char wd[10][20]),接收字符串,并把串中单词提取出来存放在二维数组wd[10][20]中,函数返回单词数量。逆序后的单词,在主函数中输出。

#include<stdio.h>
int wordReverse(char *s,char wd[200][200])
{
 int i,j=0,k=0;
 for(i=0;s[i];i++)
 {
  if(s[i]!=' ')
   wd[j][k++]=s[i];
  else
  {wd[j][k]='\0';
  j++;
  k=0;
  }
 }
 wd[j][k]='\0';
 return j;
}
int main()
{
 int i,n;
 char str[10000],word[200][200];
 gets(str);
 n=wordReverse(str,word);
 for(i=n;i>=0;i--)
  printf("%s ",word[i]);
 printf("\n");
 return 0;
}


3、小Q整数分割

时间限制:1000ms                        内存限制:256M

题目描述:

小Q决定吧一个整数n,分割成k个整数。

每个整数必须大于等于1。

小Q有多少方案。

输入描述:

输入整数n,k。(1 <= n, k<= 100)

输出描述:

输出方案数。答案对1e9+7取模。

示例:

输入

3 3

输出

1


代码及思路:

我们可以将整数n看成是由n个1组成的数列,因此每两个1之间就会存在一个间隙,我们可以通过取间隙的方法将n份1分为k段。


因此,我们可以很容易得出n个数就会有n-1个间间隙,要分成k段就需用到k-1个间隙,如此,问题就转化为了我们排列组合问题。方案数 = (n - 1)(n - 2)……(n - k + 1) / 1 / 2 / …… / (k - 1)。


#include<stdio.h>
#include<stdlib.h>
int count;
void select(int step,int cur,int n,int k,int sum)
{
    int i;
    if(sum>n)return;
    if(step>k)
    {
        if(n==sum)
        count++;
        return;
    }
    for(i=cur;i<n;i++)
    {
        select(step+1,i,n,k,sum+i);
    }
}
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    printf("%d",count);
    return 0;
}

4、新型美丽数列

时间限制:1000ms                        内存限制:256M

题目描述:

定义美丽数列A:

1. 数列中相邻的数越是靠内相对大小加一,a[2]=a[1]+1,a[n-2]=a[n-1]+1…

2. 距离边缘距离相等的数的大小相等:a[0] = a[n-1],a[1] = a[n-2]…

通过修改数列中的值使得给定数列变成美丽数列。

修改后的值必须仍是正整数。


输入描述:


第一行输入整数n。(1 <= n <= 1000)表示数列的大小。
第二行输入n个整数。

输出描述:

输出最小修改次数。


示例:

输入

1. 3
2. 1 1 1

输出

1


代码及思路:

题目的意思蛮好理解的,就是要实现一个值先递增后递减的列表,同时列表满足相邻的值相差1,及左右对称的金字塔型数列。

很是抱歉,这题我不会解,官方也没有给答案,代码后续会补充。


比赛小结及对官方的建议

小结:

加上本次第四期的比赛,一共是参与了第二期、第三期、第四期,三次比赛。第四期没有再出现第三期出现的选择题类型,还是蛮庆幸的,毕竟之前的选择题覆盖的知识面(语言知识)还是蛮广的,而这次的全编程题倒是能让参赛的大伙更从容一些。


给官方的一些建议:

  1. 首先是题目方面,在描述上可以再清晰准确些,不然容易出现歧义。
  2. 在模板方面,毕竟是编程题,题目直接给出模板后反而更偏向函数题类型。
  3. 希望官方可以出一个模拟考试的入口,和每日一练的编程题相结合。
  4. 官方可以在每次竞赛结束后,可以以直播,博客的形式,解析考试内容的思路。


今天就介绍到这里。

相关文章
|
1月前
|
云计算 开发者
分享那些在云发生的奇妙故事 ~~ 征文挑战赛来啦!
在数字化转型的大潮下,云计算已深度渗透各行各业,成为企业创新和发展的关键驱动力。本栏目旨在通过全面挖掘并生动展现“客户如何用好云”的实战历程,深入剖析行业痛点解决之道,以鲜活的案例故事呈现云计算带来的价值。
|
8月前
|
BI C++
【校园微项目竞赛】没勇气参赛?大一拿不到奖?这篇文章将讲述我带领我们组拿下校第一的生猪系统!
【校园微项目竞赛】没勇气参赛?大一拿不到奖?这篇文章将讲述我带领我们组拿下校第一的生猪系统!
43 0
|
10月前
|
算法
第一届全国高校将计算机技能大赛知识点整理
第一届全国高校将计算机技能大赛知识点整理
153 0
|
10月前
|
测试技术 UED
【CSDN第五期竞赛】说说自己的感受吧
【CSDN第五期竞赛】说说自己的感受吧
58 0
|
C语言 Python
我带我的小侄子参加编程竞赛
我带我的小侄子参加编程竞赛
40 0
我带我的小侄子参加编程竞赛
【讲讲训练营的故事】开始征集啦 参与就有奖 还有阿里云公仔等你来拿~
2022年,我们开办了百余期训练营,包括云产品训练营、企业实战训练营、技能认证训练营、开源产品训练营、求职就业训练营、高校训练营~
【讲讲训练营的故事】开始征集啦  参与就有奖  还有阿里云公仔等你来拿~
|
人工智能 BI Windows
2021 年百度之星·程序设计大赛 - 初赛一、二
2021 年百度之星·程序设计大赛 - 初赛一、二
139 0
2021 年百度之星·程序设计大赛 - 初赛一、二
|
存储
【CSDN编程竞赛 第六期】我的第一场编程竞赛
我的第一场编程竞赛解题思路。
126 0
【CSDN编程竞赛 第六期】我的第一场编程竞赛
CSDN竞赛第六期第二题(C++)
鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理,但是这次鬼艺接手了,你能帮鬼艺写一个程序统计每年消耗数量最多的鬼画符吗? 注解(这题是一道找出出现次数最多的字符串的一道题目) 输入描述: 第一行输入整数n.(1<=n<=1000)以下n行输入n个字符串,代表消耗的鬼画符。 输出描述: 输出消耗数量最多的鬼画符(字符串),无需考虑多种鬼画符消耗数量相同的情况。 示例1 输入 5 red red green green hen 输出 red
128 0
|
弹性计算 CDN 数据库
新人第一次发表
阿里云平台有详维的数程,让初学者能十分轻构的进行学习。飞天加进计划是个好想法,它计更 多的人接触到编程这一方面,也让更多的人发挥自己的热象,创造出自己的网站