ACM实训冲刺第二十天

2024-05-28 01:36
文章标签 实训 第二 acm 十天 冲刺

本文主要是介绍ACM实训冲刺第二十天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SUM Problem(数学计算与序列求和

这段代码实现的是计算一个正整数n与其之前的所有正整数之和的问题,它属于数学计算与序列求和的题型。具体算法根据输入整数n的奇偶性采用了两种形式的等差数列求和公式:

  • 如果n是偶数,则使用公式 sum = n/2 * (n + 1),这是等差数列求和公式sum = n/2 * (首项 + 末项)的应用,其中首项为1,末项为n
  • 如果n是奇数,则稍微调整了公式为 sum = (n + 1)/2 * n,原理相同,只是因为当n为奇数时,实际上末项会参与到中间的乘法计算中,而首项依然是通过总项数和末项推导出来。

因此,这段代码展示了如何根据输入数值的特性选择合适的数学公式进行快速求解,体现了数学计算和逻辑判断的结合。

#include<stdio.h>
int main(){int n,sum;while(scanf("%d",&n)!=EOF){if(n%2==0)sum=n/2*(n+1);else sum=(n+1)/2*n;printf("%d\n",sum);}return 0;
}

A+B problem(数值运算与字符串处理

这段代码实现的是大数相加的算法问题。它主要用于处理两个较大的整数(其长度可能超过普通整型变量所能直接存储的范围)相加的情况。代码首先读取测试用例的数量,然后对于每个测试用例,读取两个字符串形式的大整数,并将它们相加。

核心算法步骤如下:

  1. 输入处理:读取大数字符串,并计算每个字符串的长度。
  2. 逐位相加:从最低位(个位)开始,将字符转换成数字进行相加。同时处理进位情况。
  3. 处理结果:如果相加后有进位,则需要在结果数组中添加额外的位置来存储进位值。
  4. 输出结果:按照题目要求的格式输出原始数字以及它们的和。

因此,此代码属于基础算法中的数值运算与字符串处理类别,特别是专注于大数运算的处理技巧。

#include <stdio.h>
#include <string.h>
int main(){int T;scanf("%d", &T);int j,k;for (j = 1; j <= T; j++){char number1[1000];char number2[1000];int sum[1000] = {0};//置0scanf("%s%s", number1, number2);int len1 = strlen(number1);int len2 = strlen(number2);int i;for (i = 0; i < len1 || i < len2; i++){if (i < len1)sum[i] += number1[len1 - i - 1] - '0';//字符转换为数字if (i < len2)sum[i] += number2[len2 - i - 1] - '0';if (sum[i] >= 10){sum[i + 1] = sum[i] / 10;sum[i] = sum[i] % 10;}}printf("Case %d:\n", j);//格式输出for (k = 0; k<len1; k++)printf("%c", number1[k]);printf(" ");printf("+");printf(" ");for (k = 0; k<len2; k++)printf("%c", number2[k]);printf(" ");printf("=");printf(" ");if (len1 < len2)//判断谁最长len1 = len2;if (sum[i]>0)printf("%d", sum[i]);//最高位产生进位for (i = len1 - 1; i >= 0; i--)printf("%d", sum[i]);printf("\n\n");}return 0;
}

Anton and letters(频率统计题)

此段代码属于算法中的频率统计题型。它的主要功能是统计输入字符中英文字母(小写)出现的种类数。具体来说,程序使用一个整型数组flag来记录字母表中每个字母出现的次数,遍历输入的字符,当遇到小写字母时,对应字母在字母表中的位置(即tmp-'a')的计数器加一。最后,统计计数器大于0的个数,即为出现不同字母的种类数。因此,这是关于数据处理和分析的频率统计问题。

#include<stdio.h>
int main(){int flag[26];for(int i=0;i<26;i++) flag[i]=0;char tmp;while(tmp!='}'){scanf("%c",&tmp);if(tmp=='}') break;if(tmp<='z'&&tmp>='a'){flag[tmp-'a']++;}}int cnt=0;for(int i=0;i<26;i++) {if(flag[i]>0) cnt++;}printf("%d",cnt);
}

Sum of digits(数字运算与字符串处理

 这段代码实现的是计算一个数字字符串重复进行“数字和计算”的过程,直到得到一个单个数字为止。具体来说,它属于数字运算与字符串处理的题型。程序首先读入一个字符串s,该字符串只包含代表数字的字符。然后,通过不断将字符串中的每个字符转换为数字并求和,用求得的和替换原字符串,重复此过程,直到字符串长度为1,即得到一个单独的数字。期间,通过一个计数器result记录了这一系列操作的次数。因此,这是一个结合了字符串操作与基本数学运算的算法问题。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){char s[100000];scanf("%s",&s);int result;while(1){if(strlen(s)==1) break;int sum=0;for(int i=0;i<strlen(s);i++){sum+=s[i]-'0';}itoa(sum,s,10);//一定不要忘记!result++;}printf("%d",result);return 0;
}

题型统计

练习题名称数学计算与序列求和数值运算与字符串处理频率统计题
SUM Problem
A+B problem
Anton and letters
Sum of digits

这篇关于ACM实训冲刺第二十天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009177

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

研一实训总结

说长不长说短不短的一个月,从最开始的激动到期间,要中期要兼顾找实习准备笔试面试的焦虑,再到最后一周的加班加点和总结,收获和感触还是蛮多的。 首先,这一个月让我更加全面的认知了完成一个从无到有项目的过程,激发了我对自己工程师职业生涯的向往和对自己有了更广的除了编码以外的要求。 我一直是一个结果导向和追求效率的人,所以在团队合作过程中我们也经历了最开始的不知所措,到争执,再到主动配合和贡献,这个过

【转载】ACM感悟

今天看了一篇我们学校前辈的ACM的感悟,觉得写的十分有道理,这里转载,文章还会不断的改进和更新。 原文链接:http://www.cnblogs.com/Chierush/p/3760870.html?ADUIN=1339764596&ADSESSION=1401536826&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349 声明:本文是写给弱校ACM新手的一点

我们依旧在追梦的路上-山东省第六届ACM比赛总结

这场比赛从结果而言达到了预期(金牌),从过程而言和我的预期相差甚远(打的太乱,个人发挥很差),还好关键时刻队友抗住压力,负责后果真的不堪设想。 热身赛 热身赛纯粹测机器的,先把A,B,C草草水过(A题小写x打成大写的也是醉了),我和老高开始各种测机器,long long不出所料是lld的,试了一下除0和数组越界的re问题,发现没有re,只有wa(甚至数组越界还AC了),至于栈深的话也没过多追

2024国赛论文拿奖快对照这几点及评阅要点,勿踩雷区!(国赛最后冲刺,提高获奖概率)

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2024“高教社杯”全国大学生数学建模竞赛已过去第三个夜晚,小伙伴们都累了没有,如果感到思维滞涩,别忘了稍作休息,放松一下自己,准备迎接国赛非常重要的收尾阶段——论文。 国赛这几天的努力最后都

ACM东北地区程序设计大赛

不得不说随着参赛级别的提高,题目真的是越来越难啊,不过队长真是给力啊,在我们三个共同努力之下拿下了地区赛三等奖,哈哈我们可是大一唯一一只获奖队,终于在这次比赛打败了田大神。。。大神是失手了,俺和他差距还是挺大的。。。队友陈彤马上要去服兵役了,他说这是我们送给他最好的离别礼物,希望那家伙在部队好好干,以后谁干揍我!!!东北地区赛结束后,今年已经估计没机会参加亚洲区比赛了,赶紧补高数和线数啊!!别挂了