
信奥赛
文章平均质量分 78
律己杂谈
这个作者很懒,什么都没留下…
展开
-
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
根据题意,可以采用打标记的思想来解决此问题,首先定义一个布尔类型数组,数组元素为0表示灯处于亮的状态,1为灯处于熄灭的状态,起始值都为0,这里需要注意由于灯的编号从1到k,所以数组元素在初始时,从下标为1开始;例如,129~137:129,130,131,132,133,134,135,136,137。统计后发现:“0”出现了1次,“1”出现了10次,“2”出现了2次,“3”出现了9次,“4”出现了1次,“5”出现了1次,“6”出现了1次,“7”出现了1次,“8”出现了0次,“9”出现了1次。原创 2025-01-19 23:22:29 · 743 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
根据题意,首先将定义一个标记数组来记录树的起始状态,假设起始状态为1,接着输入马路的长度和区域数目,对于区域内出现的树修改标记,将标记从1修改为0,修改完成之后,依次遍历树的标记,记录标记发生变化的树之和,最后对和输出。输入共M+1行,第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。,L,都种有一棵树。原创 2025-01-18 23:33:17 · 337 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
根据题意,刚开始盘子全部为白色,对盘子操作涂色,对于这一类问题采用打标记的思想,采用数组下标对应盘子的编号,数组元素的值表示颜色状态,即用数组a[i]表示编号为i盘子的涂色状态,a[i]=1(bool类型),表示涂了颜色(bool值为true),a[i]=0表示没有涂过颜色(bool值为 false),重复涂色的盘子最终状态依然为1。定义一个长度为105的整型数组a,将数组a中的每个字节都赋值为0,一个整数类型占4个字节,由于每个字节都是0,则一个整型数字的结果就为0。表示将数组中每个元素赋值为-1;原创 2025-01-17 21:03:57 · 1113 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用二)
如果y−x>5%,则效果更好,如果 x−y>5%,则效果更差,否则称为效果差不多。输入共n+1行:第一行为一个整数n(1<n<=20),表示鸡尾酒疗法和新疗法的总个数;接下来的n行,每行包含两个整数,第一个整数是临床实验的总病例数(小于等于10000 ),第二个疗效有效的病例数,这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。根据题意,定义长度为n的最大值100的int类型数组来存储整数序列,然后输入整数序列的实际长度n,使用循环输入长度为n的整数并存储到数组中;原创 2025-01-16 16:56:11 · 929 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用一)
根据题意,首先考虑桃子的存储问题,由于涉及到的桃子数量多,所以使用刚学习的数组来解决此问题,数组的数据类型使用int类型,长度为10,定义好数组之后,使用循环来输入每个桃子的高度存储到数组元素中;小明家院子里有棵桃树,桃子成熟的时候,小明就会带着30厘米高的板凳跑去摘桃子,当他不能直接用手摘到桃子的时候,就会踩到板凳上再试试。桃树上每次都是10个桃子,现在已知桃子到地面的高度,以及小明把手伸直的时候能够达到的最大高度,请帮小明算一下他能够摘到的桃子的数目。输入n个整数,以0结束,反向输出。原创 2025-01-15 18:28:02 · 751 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组
假设定义了一个长度为10的整数数组,即int a[10],对于int a[10],其中a是一维数组的数组名,该数组有10个元素,那么这10个元素依次表示为∶a[0],a[1],a[2]a[3],a[4]a[5],a[6]a[7],a[8],a[9];例如: int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化之后, a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4, a[5]=5, a[6]=6,a[7]=7,a[8]=8,a[9]=9。原创 2025-01-13 21:54:44 · 758 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(应用)
正常血压的定义是:收缩压在90到140之间(包含90和140),舒张压在60到90之间(包含60和90),需要遍历所有的血压测量值,并检查每个连续的血压测量值是否都在正常范围内。为了满足上述条件,可以构建一个递增的整数序列,其中每个数字代表一个小朋友拿到的苹果数量,这个序列从1开始,因为最小的正整数是1,并且每个小朋友至少拿到一个苹果;输入共n+1行,第一行为一个正整数n(n<100),表示病人测量的血压次数,其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压。第2行:第10次弹跳的高度。原创 2025-01-12 19:06:39 · 917 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(应用)
输入一个整数n,表示要计算的天数,观察到每个阶段的天数和每天收到的金币数是相等的,并且随着阶段的增加,天数和金币数都在递增;根据题意,定义变量sum 用于记录同时报出相同数的次数,报数是从1到1000,使用for循环来模拟报数过程,循环变量num的值从1到1000,同时用变量i 和 j 分别用于跟踪小明和小鹏当前的报数值(在各自的周期内),i和j的起始值都为1,在每次循环中,判断如果 i 达到21(即小明的周期结束),则将其重置为1,开始新的周期;输出一行一个整数,表示骑士获得的金币数。原创 2025-01-11 20:44:19 · 1016 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(while循环应用)
对于任意两个正整数a和b,它们的最小公倍数LCM(a, b)与最大公约数GCD(a, b)的乘积等于a和b的乘积,即:LCM(a, b) * GCD(a, b) = a * b,由此,我们可以推导出计算最小公倍数的一个简便公式:LCM(a, b) = (a * b) / GCD(a, b),具体实现步骤为:首先输入两个正整数a和b;对于任意两个正整数a和b,如果存在一个正整数d,使得d能够同时整除a和b,即存在整数m和n,使得a = md且b = nd,那么我们就说d是a和b的一个公约数。原创 2025-01-10 18:48:15 · 1106 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(while循环应用)
根据题意,假设输入变量为n,要构建反转后的数字rn,可以借鉴数位分离的思想,使用循环来逐位提取输入整数的每一位数字,通过取模运算 % 10 得到当前最低位的数字,将反转后的数字rn乘以10加上最低位为rn重新赋值,这样就可以得到到目前为止所有最低位数得到的反转数字rn,例如123,起始值rn为0,分离最低位数3之后,得到反转后数为3,再通过整除运算 /= 10 去掉当前最低位的数字,为下一次迭代准备,例如123变为12,紧接着在分离出2,rn=3*10+2=32,依次进行下去;团 队总数不超过10000。原创 2025-01-09 23:07:17 · 769 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(while循环应用)
在得到个位数字并输出后,为了继续分离下一位数字,需要将 n 更新为去掉当前个位数字的新数字,这可以通过整除运算来实现,例如对于数字 123,在输出 3 后,将 n 更新为 123 / 10,结果是 12,这样就可以继续分离下一位数字。当n=12 时,写下1,2,3,4,5,6,7,8,9,10,11,12。比如给定范围 [2,22],数字 2在数2中出现了1次,在数12中出现1次,在数 20 中出现1次,在数21 中出现1次,在数 22中出现2次,所以数字2在该范围内一共出现了6次。输入一行一个整数n。原创 2025-01-08 22:32:34 · 919 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for、while、do-while比较)
循环变量条件表达式在每次循环迭代前检查,如果为真,则执行循环体,否则退出循环;条件表达式在每次循环迭代前检查;由于do-while循环至少执行一次循环体,因此在使用时需要特别小心,确保循环条件最终能够变为假,以避免无限循环。循环变量更新部分通常放在循环体内,但也可以放在循环体外(如果逻辑上允许的话),然而这通常不是一个好的做法,因为它可能会使代码更难理解和维护。对于该代码如果循环体中没有提前结束循环break语句,那么此代码就是无限循环,即死循环,所有在省略表达式时,一定要注意避免出现此情况。原创 2025-01-07 19:47:21 · 698 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(do-while循环语句)
然后进行条件判断:检查number的值,如果number小于或等于0,循环继续,回到循环体的开始,再次输出提示信息并等待用户输入,如果number大于0,条件判断为假,跳出do-while循环;采用do-while实现,从n = 1开始累加每一项1/n到Sn,每次循环中,检查当前的Sn是否大于K,如果Sn大于K,则退出循环,此时的n即为所求的最小值,如果Sn不大于K,则继续累加下一项。如果用户第二次输入的是3,则程序会跳出do-while循环,并输出"您输入的正整数是: 3",然后程序结束。原创 2025-01-06 22:48:44 · 879 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(while循环语句)
对于任意一个输入的正整数,按照奇偶性的不同做不同的处理,然后重读执行这一过程,直到结果为1,到底需要循环多少次,没有一个确定的值来表示次数,只需要判断结束的条件(结果不是1),循环就要继续执行下去,所以使用while循环来解决此问题;前面介绍了for循环相关内容,对于for循环来讲,可以明确循环变量的初始值和终值,即可以确定循环的次数,对于循环次数不确定的情况,可以使用while循环来解决,while循环作为最基本的循环结构之一,允许代码在满足特定条件时重复执行。当i大于10时,循环终止,程序输出总和。原创 2025-01-05 22:25:33 · 752 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)—(十)(求解数学中特殊的数)
根据题意,对于正整数n需要计算其所有正因子(不包括它本身)的和,借鉴求素数的思想,从1开始到n-1结束依次去整除n,使用循环来实现,循环变量i初始值为1,终值为n-1,更新表达式为自增运算,循环体内循环变量依次去整除n,如果n%i==0,那么将i累加到因子和,最后判断因子和是否等于它本身,等于则这个数是完全数,小于则为不足数,否则为过剩数。输出一行,如果n是完全数,则输出"Perfect",不足数则输出"Deficient",过剩数则输出"Abundant"。输入一行,两个整数m和n,且m<=n。原创 2025-01-04 19:42:42 · 499 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)——九(求解数学中特殊的数)
可以看出一个数的因数都是成对出现的,12=1*12=2*6=3*4,也有可能出现两个因子一样的情况(16=4*4),假如一个数n是合数,必然存在非1和非n的两个因子p1和p2,满足p1<=sqrt(n),p2>=sqrt(n),其中sqrt是求n的平方根函数,所以在判断素数时,循环变量终值只需为sqrt(n),如果2到sqrt(n)之间都不存在因子,那么就不存在除了1和它本身以外的因数,这样就可以减少循环体中判断语句执行的次数,提高效率。一行,如果n为素数,则输出"YES",否则输出"NO"。原创 2025-01-03 16:59:49 · 568 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(八continue语句和break语句)
根据题意,小明的工资不发生变化,但是房价在上涨,每年的增长率为K%,即每一年的房价都有:当前的房价=上一年房价*(1+K%),因此需要循环计算每一年的房价,用小明的所有积蓄去和当前房价比较,一旦积蓄值大于等于房价值,表明小明可以买起房子了,那么就可以停止计算了,此时需要结束循环,用break语句就可以退出当前循环了,如果达到20年的时候积蓄值没有超过房价,表明小明买不起房子,则输出"Impossible"。需要注意,在循环嵌套中,break语句只是结束其所在层的循环,对外层循环没有影响。原创 2025-01-02 22:48:11 · 805 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(七)
此题还可以继续优化,如果存在合理的解,那么脚的总数a一定是偶数,要想动物数量多,那么脚一定是越少越多,由于鸡的脚是2只,所以笼子里面全部为鸡时,动物最多,即maxv等于a/2;同理,要想动物数量最少,那么脚一定是越多越小,由于兔子的脚是4只,所以笼子里面全部为兔子时,动物最少,这时必须满足a能被4整除,即a%4的值为0,如果不为0,那么除了兔子还有鸡,这时可以将2只脚给了鸡,剩余的全部为兔子,那么兔子的总数为(a-2)/4,所以最小值有两种情况,a能被4整除,minv为a/4,否则为(a-2)/4+1。原创 2025-01-01 23:07:40 · 641 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(六)
外循环变量i来控制行数,起始值为1,终值为9,更新表达式为自增表达式,内循环变量j来控制列数,起始值为1,由于第1行有1个等式,第2行有2个等式,……,内层循环变量j的终值为行数i,更新表达式也为自增表达式,由外循环变量i和内循环变量j相乘的等式构成了内循环的循环体,内循环加输出换行共同构成外循环体。具体程序代码如下:。某人想将面值为100元的人民币兑换成若干张5元、2 元和1元面值的纸币,但要求零钱总数为50张,并且每种面值的纸币至少1张,请输出每一种可能的换法。原创 2024-12-31 23:24:34 · 547 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(五—for循环嵌套)
对于该程序,外循环变量i循环1次,内层循环中的控制变量j要从1循环到20次,外循环变量总共循环10次,所以总的循环次数为10*20=200。根据题意,字符图形由行和列构成,所以可以采用for循环语句嵌套,行可以由外层循环来表示,列由内层循环来表示,对于外层循环,字符图形总共由n行构成,所以外层循环变量起始值为1,终值为n,循环更新变量为自增运算,对于内层循环,每行的'*'的个数就是所在的行数,第一行有1个'*',第二行有2个'*'……外层的循环叫做外循环,内层的循环叫做内循环。①执行循环体11的代码,原创 2024-12-30 22:36:44 · 1301 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(四)
其中第 1 行只有一个整数 n,第 2 行有 (n-1)个正整数,这n-1个整数是每个已知内角的度数。已知其中(n−1) 个内角的度数,就能计算出剩下的一个未知内角的度数。共两行,第一行为整数的个数 n(1≤n≤1000)。人数保留小数点后四位。输入n个非负整数,找出这个n整数的最大值与最小值,并求最大值和最小值的差值。一行,包含两个整数 x 和 n,分别是人口基数和年数,以单个空格分隔。输出该国家n年后的人口数量,以亿为单位,保留到小数点后四位。输出一行,n个整数中的最大值,最小值和差值,并用空格隔开。原创 2024-12-29 18:39:39 · 1057 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(三)
求1到n这n个数的和sum,使用累加的思想,依次将这n个数累加到sum中;第一行有一个整数n(1≤n≤100),表示学生的人数。其后 n 行每行有 1 个整数,表示每个学生的年龄,取值为15到25。小明班上有 n 个学生,现给出每名学生的年龄且保证是一个整数,求班上全部学生的平均年龄,且保留到小数点后两位。输出 n行,每行有两个数,分别是 i 和 i 的阶乘,两个数之间用空格隔开。输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。给定正整数 n,求从 1到 n 的每一个整数的阶乘。原创 2024-12-28 21:02:15 · 651 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(二)
如果m是一个偶数,那么在累加时不加m,m的下一个数m+1为奇数,这样循环变量的初始值不再为m,而是为m+1,同样循环变量更新使用i=i+2,保证i的奇数性质。根据题意要求m到n之间的所有奇数的和,即循环变量的初始值为m,最终结束值为n,对这n-m+1个数,只需求解奇数的和,在循环体内需判断这个数是否为奇数(奇数不能被2整除,即该整数对2进行求模运算,如果模为1,表示是奇数,否则为偶数),如果为奇数,则将该数累加到和中,否则该数不被累加,循环结束后,输出和即可。输入第一行是一个整数 n,表示有 n个整数。原创 2024-12-27 21:03:37 · 697 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(一)
首先执行初始化表达式"int i=1",定义了一个整型变量i,并且进行初始化为1,紧接着执行循环条件i<=30(由于有30个学生,所以学生的编号不能超过30),即使用i<=30设置继续执行的条件,一旦i>30,for循环语句就结束了,当i=1时,i<=30,循环条件为真,执行循环体里面的语句,输出1号学生的座位号,紧接着执行循环变量更新:i++,i的值增加1,i的值变为2,紧接着执行循环条件2<=30为真执行循环体,输出2号学生的座位号,执行i++,i变为3,……一旦条件变为假(零),循环就会终止;原创 2024-12-26 22:15:00 · 1442 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战训练三)
根据题意,首先定义三个字符变量a、b、c并输入值,字符比较首先将字符转换成Unicode值(即整数值),根据值的大小确定先后顺序,大写字母的值小于小写字母,所以大写字母在前,小写字母在后。先让a与b进行比较,如果a比b大,则交换a和b;第10行的if语句通过flag的取值来判断数的奇偶性,如果flag的值为true,则n为奇数,如果flag的值为false,则n为偶数。小明和小敏玩一个游戏,他们手中各有三个整数,小明用手中的一个数字乘以小敏手中的一个数字,这样三个数配对得到乘积,并将三个乘积求和。原创 2024-12-25 22:20:49 · 639 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战项目二)
在将a和c进行比较,如果a比c大,则交换a和c,这样a就存储了这三个数中的最小值;b来了之后,如果将擂主a打败了,那么b称为新的擂主,最小值为b,否则擂主仍为a,a还是最小值;结论:这种将情况逐一列出的情况不可取,如果对于4个或者4个以上的数,需要考虑的情况变得复杂了,那么对于更多的数进行排序怎么进行处理呢,这些问题在后续的内容会逐步进行讲解。这三种不同的解法,代表了三种不同的程序设计思想,如果涉及n个数据的求解(n很大),那么if语句便不再适用,这时需要学习新的知识——下一阶段的“循环”。原创 2024-12-24 22:41:14 · 1220 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
swith语句在执行时,先计算表达式的值,然后按顺序与case子句中所列出的各个常量进行比较,若表达式的值与常量中的值相等,则由此进入相应的case语句执行程序,并在执行完相应的语句加上break语句,如果不加break程序不会立即跳出switch语句,而是继续依次执行后面的case语句和default中的代码,直到遇到break语句或switch语句结束。if语句处理多个分支时需要用if-else if结构,分支越多,嵌套的if语句层就越多,程序不但庞大、复杂,理解起来也比较困难。输出成绩对应的等级。原创 2024-12-23 22:47:24 · 992 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(if语句的嵌套)
根据邮费重量的计算,分成两个部分小于等于1000克和大于1000克两个部分,在已经重量的情况下还有是否加急这个条件,所以最外面的if条件可以写成重量是否小于等于1000克,else部分是大于1000克,超过1000克部分是否为500的整数倍,对于是否是500的倍数这个条件可以写成一个子条件,如果正好是整数倍,即对500取余为0,多出的部分除以500再乘以4,如果不是整数倍,即对500取余不为0,这时不足500按照500克收取邮费,相当于多出的部分除以500向上取整;输出一行,包含一个整数,表示邮费。原创 2024-12-22 21:32:47 · 930 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战训练一)
1、普通闰年是4的倍数但不是100的倍数,即公元年year能被4整除,且不能被100整除;2、对于条件2,n可以被3,5,7中的任意两个数整除,可以分成3种情况:被3和5整除,被5和7整除,被3和7整除,所以可以写成表达式:(n%3==0 && n%5==0),(n%5==0 && n%7==0),(n%3==0 && n%7==0)3、对于条件3,n只能被其中的一个数整除,即被3整除,被5整除,被7整除,所以可以写成表达式(n%3==0),(n%5==0),(n%7==0)输入一行,包括一个整数n。原创 2024-12-21 19:47:14 · 688 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(多分支结构)
双分支结构(if-else)允许程序在if条件为真时执行if后面的语句块,在if条件为假的情况下,执行else后面的语句块;在多分支结构中,各个表达式按顺序求值,直到找到某个表达式的值为真,则执行与其相关的语句,并由此结束整个if语句,即跳过后续所有的条件检查。一个学生的成绩如果大于等于90,程序会输出“优秀”,如果成绩大于等于80小于90,程序输出“良好”,如果大于等于70小于80,程序输出“中等”,如果大于等于60小于70,程序输出“及格”,如果小于60,程序输出“不及格”。输出成绩对应的等级。原创 2024-12-20 20:36:19 · 598 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(单分支结构和双分支结构)
这里的condition是一个布尔表达式,如果它的值为true,则执行花括号{}内的代码块;如果是多条语句,则必须将这几条语句使用花括号{}括起来组成一个语句块,这样的语句块称为复合语句块。单分支结构通常用于简单的条件判断,只有if条件为真的情况下执行花括号里面语句块,如果if条件为假,需要执行另一个语句块,就需要双分支结构。一个学生的成绩如果大于85,程序会输出“优秀”,如果成绩小于大于85,程序将不会输出任何内容。一个学生的成绩如果大于85,程序会输出“优秀”,如果成绩小于大于85,程序输出“良好”。原创 2024-12-19 21:12:06 · 1306 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(关系运算符和逻辑运算符)
'是单目运算符,用来对它后面的表达式结果进行求反,即反转一个表达式的值,它使一个表达式的值从"true"变成了"false",或者从"false"变成了“true”,“真”的非运算的结果为“假”,“假”的非运算的结果为“真”,运算规则简称为“非真即假,非假即真”。该条语句定义了一个bool类型的变量flag,在数学中"2>1"是正确的,"2<1"是错误的,对应地在C++中"2>1"相当于该逻辑判断的结果为真,"2<1"相当于该逻辑判断的结果是假,其中'>'和'<'这两个运算符被称为"关系运算符"。原创 2024-12-18 21:07:31 · 1130 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之字符类型
要进行计算机程序设计,不仅仅进行科学数值类型计算,还需要处理一些文本信息,这就需要字符类型。在编程中常用的ASCII码,'0'对应48,'1'对应49,后面数字字符的ASCII码值依次增加1,'A'对应65,'B'对应66,后面字母字符的ASCII码也是依次增加1,'a'对应97,同理从'b'开始ASCII码依次加1。除此之外需要注意:数字0和字符'0'不一样,字符'0'的ASCII码是48,所以字符'0'相当于数字48,例如('0'-48)这个表达式的结果为0,而(0-48)这个表达式的结果为-48。原创 2024-12-17 20:31:10 · 613 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之复合运算符
复合赋值运算符用于将某个变量的当前值与另一个变量进行运算再赋值给该变量,这些运算符结合了基本的赋值运算符"="和运算符(例如:+、-、*、/、%),即在赋值运算符前面加上运算符构成复合赋值运算符,常见的复合运算符有:加法赋值运算符(+=) 、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符( /=)、取模赋值运算符(%=)。在C++中,允许用逗号连接几个表达式,构成一个更大的表达式,称为“逗号表达式”。各个表达式的计算顺序是从左往右,最终整个表达式的值是“表达式n”的值。原创 2024-12-16 22:10:23 · 600 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之整除与取余(二)
变量地址表示在变量前加取地址符"&",涉及多个变量时,用逗号隔开,而格式控制按照变量的顺序匹配对应的数据类型控制符,例如,在程序中设置了三个变量,int类型变量a,double类量b,long long类型变量c,则输入语句是"scanf("%d%lf%lld",&a,&b,&c);换一种方式思考,百位上的数字对该三位数贡献了100份,十位上的数字对该三位数贡献了10份,个位上的数字对该三位数贡献了1份,如此我们将百位上的数字减去99份,将个位上的数字加上99份即可得到新的三位数。具体程序如写法3所示。原创 2024-12-15 21:26:09 · 663 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之整除与取余(一)
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之整除与取余原创 2024-12-14 22:28:54 · 565 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器实战题目
"其中ans的初始值为1。由于是连续的自然数,所以第二个数等于第一个数加1,第三个数等于第二个数加1,题目中已知第一个自然数为100,可以使用计数来实现,即"n=n+1;在生物课上,小明学习了细胞分裂,知道1个细胞第1次分裂由1个分裂成2个,第2次分裂由2个分裂成4个,第3次分裂由4个分裂成8个……细胞分类的规则可以用一个等比数列来描述,1个细胞分裂成2个,所以分裂1次就是在基础细胞的基础上累乘2,即"n=n*2。给定a的值,求表达式a+a*a+a*a*a+a*a*a*a+a*a*a*a*a的值。原创 2024-12-13 22:42:49 · 566 阅读 · 0 评论 -
C++代码实现根据用户输入参数打印字符矩阵:全填充与边界填充模式
这段代码根据用户输入的参数mnch以及flag来生成特定形状的字符矩阵。当flag等于1时,生成一个全由字符ch填充的m行n列矩形;否则,生成一个仅边界由字符ch包围,内部填充值为空格的m行n列矩形。原创 2024-01-29 00:07:50 · 571 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考每日一题--二维数组
信奥赛提米——二维数组原创 2024-12-08 17:30:12 · 401 阅读 · 0 评论 -
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(二)
在前面舀水的例子中,如果我们关注的不是加了多少瓢,而是一共加了多少水,如果每次加水的量也不一样,这时该怎么办?赋值符号前后的ans表示的是加水前后的两种状态,这里也要将ans初始化为0,否则对结果会有一定的影响。程序中第5行表示从键盘上读入第一个值32,第6行表示将32累加到ans,第7行输出ans并换行;接下来又从键盘上读入一个值15,继续累加到ans中,32加15得47,输出换行;累除的写法为"ans=ans/x;",累除的时候要保证式子有意义,x的值不能为0,而且ans定义为整型,这个除法就是整除。原创 2024-12-12 18:57:27 · 554 阅读 · 0 评论