自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 牛客 方块与收纳盒

一道简单的线性dp的题目(入门题目)

2022-11-06 20:23:51 616 2

原创 NOI openjudge 计算2的N次方

任意给定一个正整数N(N

2022-06-07 14:34:17 758

原创 组合数递归公式(笔记)

组合数的递推公式题目:5.10 周练 - Virtual Judge (vjudge.net)思路:通过组合数递推公式加逆元的方式进行递推计算#include<bits/stdc++.h>using namespace std;typedef long long ll;ll mod=1e9+7;ll cnt,sum;ll qpow(ll a,ll b){ ll res=1; while(b){ if(b&1) res*=a; res%=mod;..

2022-05-10 14:35:05 597 1

原创 NOI OJ 1.8 23:二维数组回形遍历(多维数组的遍历) C语言

描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:输入输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整数。每个整数占一行。(作为一个水娃,总算更新了,给大伙来个好玩的题)有人问我这道题,说是

2021-12-08 11:21:49 6407 13

原创 NOI OJ 1.6 10:大整数加法 C语言

描述求两个不超过200位的非负整数的和。输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。有一说一我本人是不大想讲的,因为这个题考的就是你们的思路,算是oj上的第一大难点吧(事实上就是我懒,讲解一遍太费力了)。但是,我看很多同学都卡死在这道题,一筹莫展,我就感到十分的悲痛,宝贵的刷题时光就这样浪费了,多可惜。所以我写了这篇文章给那些想了很久但是真的没什么思路的同学(那些

2021-10-24 15:41:39 4255 6

原创 NOI OJ 1.5 42:画矩形 C语言

描述根据参数,画出矩形。输入输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。输出输出画出的图形。思路:总共分成两种情况,一种是实心的,另一种是空心的(个人认为看作二维数组会比较清晰)这道题主要考的是嵌套循环(到二维数组天天用的东西),废话不多说,直接上代码解释#include<stdio.h>int

2021-10-20 20:52:34 3893

原创 NOI OJ 1.5 22:津津的储蓄计划 C语言

描述津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就

2021-10-19 23:48:05 1210

原创 NOI OJ 1.5 18:鸡尾酒疗法 C语言(包含一维数组的简单讲解)

描述鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式 进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于

2021-10-06 22:34:44 2546

原创 NOI OJ 1.5 16:买房子 C语言

描述某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)输入一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。输出如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出I

2021-10-04 12:08:10 5551 4

原创 NOI OJ 1.5 15:银行利息 C语言

描述农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。输入一行包含三个整数R,M,Y,相邻两个整数之间用单个空格隔开。输出一个整数,即约翰最终拥有多少钱(整数部分)。思路:首先我们知道年利率是个百分数,所以

2021-10-03 00:07:17 4236 13

原创 NOI OJ 1.5 13:乘方计算

描述给出一个整数a和一个正整数n,求乘方a的n次方。输入一行,包含两个整数a和n。-1000000 <= a <= 1000000,1 <= n <= 10000。输出一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。思路:和自增的做法差不多(就是每循环一次乘一次)#include<stdio.h>int main(){ int a,b,c,sum=1;//定义总量初始值为1,因为必定会乘一次 scanf(

2021-10-02 23:53:15 1497 1

原创 NOI OJ 1.5 12:与指定数字相同的数的个数 C语言

描述输出一个整数序列中与指定数字相同的数的个数。输入输入包含2行:第1行为N和m,表示整数序列的长度(N <= 100)和指定的数字, 中间用一个空格分开;第2行为N个整数,整数之间以一个空格分开。输出输出为N个数中与m相同的数的个数。思路还是很简单首先 循环次数是N(蓝字部分注意) 指定的数字就是我们m(输入的第二个数)然后 每次循环检测输入值是否与我们的m相等就行了#include<stdio.h>int main(){ int ..

2021-10-02 23:33:32 2499

原创 NOI OJ 1.5 11:整数的个数 C语言

描述给定k(1< k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。输入输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。输出输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。注意蓝字的部分因为给的条件限制的很厉害,所以只要用if标注出3种情况然后嵌套在循环里面就行了#include<stdio.h>int..

2021-10-02 23:20:32 2199

原创 NOI OJ 1.5 09:奇数求和 C语言

描述计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。输入两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。输出输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和这里我提供两种做法第一种是正常的循环做法,第二种是偷鸡做法#include<stdio.h>int

2021-10-02 23:08:31 5704

原创 NOI OJ 1.5 06:整数序列的元素最大跨度值 C语言

描述给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。输入一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。输出输出一行,表示序列的最大跨度值。这题的思路和上题基本一致(1.5 05可以去看我的上一篇文章)只是上一题只要最大值,而这一题还需要一个最小值所以我们不妨在定义一个变量min用选择语句求出最小值#include<stdi.

2021-10-01 23:52:59 5734 4

原创 NOI OJ 1.5 05:最高的分数 C语言

描述孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?输入输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。输出输出一个整数,即最高的成绩。这道题考验的是循环结构和选择结构的混用(for和if一起用或while和if一起用)所以这里我们需要定义

2021-10-01 23:43:47 4950

原创 NOI OJ 1.5 04:求整数的和与均值 C语言

描述读入n(1 <= n <= 10000)个整数,求它们的和与均值。输入输入第一行是一个整数n,表示有n个整数。第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。输出输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。思路:和1.5 01的题一样(不清楚的小伙伴可以去看前一篇文章)首先进行多次输入但这里的题目要求有一个总和,只要总值求出来后,求均值不是简简单单,所以我们声明一个变量sum(表达为总数的意思,你想声.

2021-10-01 23:22:35 3745

原创 NOI OJ 1.5 01 求平均年龄 C语言

描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。输入第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。oj考验循环的第一题目标是让你通过循环进行多次输入题目首先给你输入一个n,这个n就表示了之后循环输入的次数for和while都是能用的,我个人比较喜欢用for,这

2021-10-01 22:52:11 2073

原创 NOI OJ 1.4 20 求一元二次方程的根

描述利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。输入输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2+ bx + c =0的系数。输出输出一行,表示方程的解。若b2= 4 * a * c,则两个实根相等,则输出形式为:x1=x2=...。若b2> 4 * a * c,则两个实...

2021-09-25 23:42:39 1339

原创 NOI OJ 1.1 10 超级玛丽 C语言

没什么好说的,这题目没啥意义,直接抄代码就行了#include<stdio.h>int main(){printf(" ********\n\ ************\n\ ####....#.\n\ #..###.....##....\n\ ###.......###### ### #

2021-09-25 23:18:25 1020

原创 NOI OJ 1.4 19 简单计算器 C语言

描述一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。输入输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。输出输出只有一行,一个整数,为运算结果。然而:1. 如果出现除数为0的情况,则输出:Divided by zero!2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!我个人认为这里用switch很

2021-09-25 23:14:39 1934

原创 NOI OJ 1.4 17 判断闰年 C语言

描述判断某年是否是闰年。输入输入只有一行,包含一个整数a(0 < a < 3000)输出一行,如果公元a年是闰年输出Y,否则输出N注意:公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。注意事项这里很重要,不能光被4整除就判断它是否是闰年。所以这里我们要考虑如果输入的年份能被100整除时,他同时也能被400整除才行#incl

2021-09-25 22:38:14 597

原创 为什么scanf要地址

scnaf是赋值类的,需要存入指定的地址scanf需要修改变量的能力scanf,传入的参数是值传递,没办法修改到原变量,所以必须要取地址.简而言之你首先int 了个a。然后你要给a赋值,你用了scanf来进行输入scanf("%d",a);这时候的a是形式参数,并不是我们定义的那个a,所以无法给我们定义的a赋值。(形参不能改变实参)scanf("%d",&a);所以我们需要地址符&将形参存入我们的实参中。这就是为什么scanf要地址的原因。...

2021-09-17 13:46:40 4086 4

原创 NOI OJ 1.4 05:整数大小比较 C语言

描述输入两个整数,比较它们的大小。输入一行,包含两个整数x和y,中间用单个空格隔开。0 <= x < 2^32, -2^31 <= y < 2^31。输出一个字符。若x > y,输出 > ;若x = y,输出 = ;若x < y,输出 < ;这里我们两两比价,再引入一个中间数,将第一次比较的结果赋值给中间数,再进行一次比较。这种思路比较简洁清晰,能较为方便的进行比较。#include<stdio.h>

2021-08-26 11:11:18 1650

原创 NOI OJ 1.4 04:奇偶ASCII值判断 C语言

描述任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输出NO输入输入一个字符输出如果其ASCII值为奇数,则输出YES,否则,输出NO要注意看题目(黄子部分),不要漏掉条件。因为有两种情况输出都为NO,我们用 if elseif将两个情况联系在一起,剩下 YES 的情况我们用else来表示。#include<stdio.h>int ma..

2021-08-26 11:06:23 1996

原创 NOI OJ 1.4 03:奇偶数判断 C语言

描述给定一个整数,判断该数是奇数还是偶数。输入输入仅一行,一个大于零的正整数n。输出输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even很简单就是求余,然后用if分成是否有余数的两种情况。#include<stdio.h>int main(){int a;scanf("%d",&a);int b=a%2;if (b==0)printf("even");elseprintf("odd");return 0;}...

2021-08-26 11:02:02 567

原创 NOI OJ 1.4 01:判断数正负 C语言

描述给定一个整数N,判断其正负。输入一个整数N(-109<= N <= 109)输出如果N > 0, 输出positive;如果N = 0, 输出zero;如果N < 0, 输出negative三种情况,对应三个if。#include<stdio.h>int main(){int a;scanf("%d",&a);if(a==0)printf("zero");if(a>0)printf("positi.

2021-08-26 10:59:24 2429

原创 NOI OJ 1.3 20:计算2的幂 C语言

描述给定非负整数n,求2n。输入一个整数n。0 <= n < 31。输出一个整数,即2的n次方。因为要求2的n次方,所以此处我们引进pow(),引用pow()需要使用#include<math.h>。#include<stdio.h>#include<math.h>int main(){int a;scanf("%d",&a);int b=pow(2,a);printf("%d",b);return 0;

2021-08-26 10:47:14 1043

原创 NOI OJ 1.3 17:计算三角形面积 C语言

描述平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。输入输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。输出输出也是一行,输出三角形的面积,精确到小数点后两位。使用海伦公式计算得出三角形面积,先通过两点间距离公式求出三条边的长度,并计算出半周长。#include<stdio.h>#include<math.h>int mai

2021-08-26 10:42:47 2331

原创 NOI OJ 1.3 16:计算线段长度 C语言

描述已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度。输入共两行。第一行是两个实数Xa,Ya,即A的坐标。第二行是两个实数Xb,Yb,即B的坐标。输入中所有实数的绝对值均不超过10000。输出一个实数,即线段AB的长度,保留到小数点后3位。这道题我们需要开根号,所以我们引进了#include<math.h>,这样我们就可以使用sqrt()。sqrt()表示开根号#include<stdio.h>#include&l

2021-08-26 10:35:12 2200

原创 NOI OJ 1.3 15:苹果和虫子 C语言

描述你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?输入输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。输出输出也仅一行,剩下的苹果个数此题思路也要将求余的思想带入进去,明确什么时候该再-1。#include<stdio.h>int main(){int a,b,c;scanf("%d %d %d",&

2021-08-26 10:25:26 8405

原创 NOI OJ 1.3 14:大象喝水 C语言

这道题主要的难点在于如何判断大象是否正好或者差一点喝饱(解渴)我们首先通过公式将桶的容量计算出来。先用20整除它,然后接下来是重点,怎么判断是否正好喝完与否,运用求余的方法可以轻松的得出是否有余数,再运用if语句进行处理。#include<stdio.h>int main(){double a,b,pi=3.14159;scanf("%lf %lf",&a,&b);int c=20000/(pi*a*b*b)+1;printf("%d",c);retur

2021-08-26 10:18:44 9665 2

原创 NOI OJ 1.3 13:反向输出一个三位数 C语言

这种题难度不大,但思维要活络,这里提供两个思路。方法1:先求出百位的数字,再去掉个位,把十位数字求出来,最后用原数减去百位和十位,得到个位数,再一个个排序(比较笨的方法)。#include<stdio.h>int main(){int a;scanf("%d",&a);int b=a/100;int c=a/10-b*10;int d=a-c*10-b*100;printf("%d%d%d",d,c,b);return 0;}方法2:用求余的方式求出个

2021-08-26 09:44:58 7439 1

原创 NOI OJ 1.3 11:计算浮点数相除的余数 C语言

#include<stdio.h>int main(){double a,b,r;int k;scanf("%lf %lf",&a,&b);k=a/b;r=a-k*b;printf("%g",r);return 0;}注:看清楚题目,明确余数的求法。使用printf("%g",x),能使输出时小数部位没有多余的0.

2021-08-25 11:30:31 2583 2

原创 NOI OJ 1.3 09:与圆相关的计算 C语言

#include<stdio.h>int main(){double r,pi=3.14159;scanf("%lf",&r);printf("%.4lf %.4lf %.4lf",2*r,2*r*pi,r*r*pi);return 0;}没什么好说的,就是套公式。因为输入和输出都是双精度浮点数,就直接都用double了。

2021-08-25 11:11:15 1802

原创 NOI OJ 1.3 05:计算分数的浮点数值 C语言

该题有两种解法第一种是把输入的数就设置为double的类型,这样整出后得到的数也会是double类型的(如下)#include<stdio.h>int main(){double a,b;scanf("%lf %lf",&a,&b);printf("%.9lf",a/b);return 0;}第二种可以看作是强制类型转换#include<stdio.h>int main(){int a,b;scanf("%d %d",&amp

2021-08-25 11:01:46 4068 1

原创 NOI OJ 1.3 04:带余除法 C语言

#include<stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);printf("%d %d",a/b,a%b);return 0;}注:感觉没什么好说的,/表示为整除,%为求余。

2021-08-25 10:48:05 1513

原创 NOI OJ 1.2 10:Hello, World!的大小 C语言

先来一个明显的错误示范(大佬别喷)#include<stdio.h>;int main(){char a=" Hello, World!";printf("%d",sizeof(a));return 0;}这个是错误代码!!!!!!!!!!!char是用来存放字符数据的,例:'x'和 '*'在此处" Hello, World!"明显超出了这个范围,因此我们没有必要先用char来声明,我们可以直接输出sizeof(" Hello, World!"),这样得出的值就是整.

2021-08-25 10:29:25 1990 1

原创 NOI OJ 1.2 整型与布尔型的转换 C语言

#include<stdio.h>int main(){int a;bool b;scanf("%d",&a);b=a;a=b;printf("%d",a);return 0;}注:跟着题目的要求来就行了。如果对布尔型的概念不清楚,可以自行查找,简而言之就是一种表示真假的变量(反正按照题目要求来就行了,布尔型目前也用不上)。...

2021-08-25 10:23:30 858

原创 NOI OJ 1.2 06:浮点数向零舍入

#include<stdio.h>int main(){float a;scanf("%f",&a);int b=a;printf("%d",b);return 0;}提示:可以使用强制类型转换来实现。注:因为我们输入的是float,可以通过将输入的float的值赋予给我们定义的int的值,因为int的值只能为整数,所以能把输入的单精度浮点数舍成整数。因为题目的要求是 :向零舍入的含义是,正数向下舍入,负数向上舍入。所以我们这里不能用 printf("%..

2021-08-25 10:16:30 758

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除