自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 课堂训练题 递归函数求斐波那契数列

#include<stdio.h> #include<stdlib.h> #include<string.h> int str(int m){ if(m==1||m==2)//通过数列的规律发现,前两项都为1,作为递归的终止条件 return 1; else{ return str(m-1)+str(m-2);//要求第n项,就是求n-1项和n-2项的和 //牢记str(m)=str(m-1)+str(m-2) } }; int main(){ in

2021-06-04 11:16:22 162

原创 PTA 谁先倒

题目 代码 #include<stdio.h> int main(){ char r; int s[110],s1,s2,j1[110],j2[110],y1[110],y2[110],n,t,i; scanf("%d%d",&s1,&s2); int s11=0,s22=0; scanf("%d",&n); for(i=0;i<n;++i){ scanf("%d%d%d%d",&j1[i],&j2[i],&y1[i]

2021-05-28 17:10:31 306

原创 PTA 大笨钟

题目 代码 #include <stdio.h> int main() { int h,m; scanf("%d:%d",&h,&m); if(h<12) { printf("Only %02d:%02d. Too early to Dang.\n",h,m); } else if((h==12)&&(m==0)) { printf("Only %02d:%02d. Too early to Dang.\n",h,m); } e

2021-05-28 17:01:07 906

原创 课堂训练题 字符串排序

Description 输入一些字符串,要求按照字符串的长度由大到小排序,若字符串的长度相等,则按照字符串的ASSII码由小到大排序。 Input 第一行输入一个整数n(0< n <=20)表示有n组数据,每组数据首先输入m(0< m <=20),表示有m个字符串,接下来m行,每行输入一串小写字母(长度不超过100)。 Output 输出数据占m行,输出排好序的字符串。 Sample Input 1 3 abcdcba aabac acvfdfg Sample Output abcd

2021-05-28 16:06:40 263

原创 hdu 2190 重建希望小学

题目 【类似hdu 2046 骨牌铺方格】 注意思考:(老师提醒点) 例如:3 -> 5,为什么是2种变化,而不是 3种变化?答:用6块1米×1米的地砖时,经过状态4,已经被考虑,不能重复考虑。 #include<stdio.h> int main(){ long long ans[35];//注意防递推值太大,定义为long long型 int t; ans[1]=1; ans[2]=3; for(int i=3;i<=30;i++){ ans[i]=ans[i-

2021-05-21 19:23:06 132

原创 hdu 2046 骨牌铺方格

骨牌铺方格 题目 分析 F(0) = 0,没有地方摆骨牌,所以为0; f(1) = 1,只能竖着摆放1个骨牌;(1种铺放方案) f(2) = 2,可以是横着摆放2个骨牌,或者竖着摆放2个骨牌;(1种铺放方案) f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基础上在右边再横着放2个骨牌(竖着放已经在f(n-1)中),也可以在f(n-1)的基础上在右边再竖着1个骨牌。 【类似于超级楼梯】 代码: #include<stdio.h> int main() { i

2021-05-16 17:49:10 178

原创 hdu 2044 一只小蜜蜂...

** 一只小蜜蜂…** 题目 题目分析如下图 问题分析:这个问题非常类似于我之前写的:hdu 超级楼梯,略微有些不同。 站在第n个蜂房想一下,前一步是从哪里来的,问题就清楚了。 分析: 看图可知,由于蜜蜂每次只能从前1个蜂房前2个蜂房过来,那么f(n)=f(n-2)+f(n-1)。这部就是一个菲波拉契数列吗?就是一个递推问题? 可是,开始时候,蜜蜂是在第1个蜂房,所以数列的开始几项会有所不同。 f(1)=0,因为蜜蜂开始在第1个蜂房; f(2)=1,蜜蜂只能从第1个蜂房来到第2个蜂房; f(3)=2,蜜蜂

2021-05-16 17:23:33 169

原创 斐波那契数列公式

斐波那契数列:F(n)=F(n−1)+F(n−2) 求解万能公式 详情请点击百度百科

2021-05-16 16:47:41 719

原创 hdu 2041 超级楼梯

超级楼梯 题目 从题目中推出下图关系图 由图可知:计算 F(n) 时,主要时求出F(n-1)与F(n-2)的值,再求两者之和。类似于斐波那契数列 递推的关键 1.在计算 F(n) 时,要保证F(n-1)、F(n-2)、F(n-3)、……、F(2)、F(1) 已全部完成计算 2.计算的次序是F(1)、F(2)、F(3)、……、F(n-2)、F(n-1)、F(n) #include<stdio.h> int main() { int n,m; long long a[50]={0,1,1};/

2021-05-16 16:40:26 130

原创 C++中SORT函数使用方法

sort函数使用方法

2021-05-14 17:54:01 81

原创 hdu 1232 畅通工程

畅通工程 思路 城市之间由道路连接,相连的城市可以看做一个集合,如:a、b相连,c、d相连,则a和b属于集合A,c和d属于集合B。之后又有人告诉你b和e相连,那么就把e加入到集合A中,以此类推。然后不同集合若是想组成一个大的集合,即集合A和集合B若相连接在一起,那随便在两个集合中分别找两个城市连接在一起就可以了。 考点 并查集 #include<stdio.h> int fa[1010]; int find(int i){//寻找 根(父节点) if(fa[i]!=i){//领导人的集合就是

2021-05-11 00:36:38 86

原创 编程练习7-8 方阵循环右移

本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。 输入格式: 输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。 输出格式: 按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。 输入样例: 2 3 1 2 3 4 5 6 7 8 9 输入样例: 2 3 1 5 6 4 8 9 7 ...

2021-05-08 17:14:25 135

原创 编程练习7-4 找出不是两个数组共有的元素

找出不是两个数组共有的 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输...

2021-05-08 16:42:40 1721 1

原创 PTA (课堂作业)使用函数删除字符串中的字符

使用函数删除字符串中的字符 添加链接描述 注意:要消\n 法1:用同一数组修改 #include <stdio.h> void delchar(char *str, char c); int main() { int i, j, repeat; char c, s[100]; scanf("%d ", &repeat); for (i = 1; i <= repeat; i++) { getchar();//消\n (换行符号)

2021-05-08 16:13:38 1619

原创 PTA N个数求和(分数)

N个数求和 添加链接描述 本题的要求很简单,就是求N个数字的和。 麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤\le≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内(long有符号长整数)。另外,负数的符号一定出现在分子前面。 输出格式: 输出上述数字和的最简形式 —— 1,。即将结果写成整数部分 分数部分,其中分数部分写成分子/分母, 2.要求分子小于分母,且它们没

2021-04-12 00:18:14 5127

原创 hdu 1009 FatMouse‘ Trade(贪心)

FatMouse’ Trade(贪心) 添加链接描述 #include <bits/stdc++.h> using namespace std; #define MXN 1010 int m, n; double ans, m2; struct sRoom{//**struct用法** int f, j; double jf; } r[MXN]; int main(){ while(scanf("%d %d", &m, &n)){ if(m

2021-04-11 18:18:02 138

原创 hdu 1098 Ignatius‘s puzzle

Ignatius’s puzzle 添加链接描述 思路 1、先把题目含义给搞明白:给定一个方程式f(x)=5x13+13*x5+ka*x,给定一个非负整数k,求能不能找到一个尽量小的非负整数a,使得上述方程式中的x任意取值,结果都能被65整除,如果有,输出a的值,否则输出no #include <bits/stdc++.h> using namespace std; int main(){ int k; while(scanf("%d", &k) == 1){

2021-04-09 17:03:49 104

原创 hdu 2199 Can you solve this equation?

Can you solve this equation? 函数求导成单调,采用二分法 添加链接描述 老师做法1:二分,精度控制 #include <bits/stdc++.h> using namespace std; // 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 #define f(x) (x*(x*(x*(x*8+7)+2)+3)+6) double binSearch(double l, double r, double val){ double mid

2021-04-09 16:43:57 99

原创 hdu 2899 Strange fuction

Strange fuction 函数求导看凸性用三分法 添加链接描述 //三分法 #include <bits/stdc++.h> using namespace std; //F(x) = 6*x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100) #define F(x, y) (x*(x*(x*(x*(x*(x*(6*x+8)))+7)+5)-y)) double solve(double l, double r, double

2021-04-09 15:44:35 95

原创 hdu 1060 Leftmost Digit

思路: eg:Nlog10N =3.14 NN=103.14= (100.14)*103=x,xxx…*103 //红色部分就是最高位

2021-04-01 23:21:47 94

原创 hdu 2035 人见人爱A^B

人见人爱A^B (请输出A^B的最后三位表示的整数) 添加链接描述 思路:类同1097题的做法 根据数据范围,此题肯定不能直接求出a^b,然后再求百位,这样必然超时。好在题目仅要求乘积的百位部分,因此,一次乘一个a,留下乘积的百位部分,继续跟a相乘。如此往复,直到完成b的连乘。 #include<stdio.h> int main(){ int m,n; while(~scanf("%d%d",&m,&n)&&(m||n)){ int sum=1; w

2021-04-01 23:05:51 77

原创 hdu 1097 A hard puzzle

A hard puzzle (艰难的难题) (求a^b’s the last digit number) 添加链接描述 开始使用暴力算法,结果肯定是time exceed ,后来想到了简便算法,第一个数a只用考虑个位,然后对0-9的每个数进行乘方比较,发现都是以4为周期的函数,结果就很容易得出来了 eg:各个个数的几次方的个位数 0: 1,0,0,0,… 1: 1,1,1,1… 2: 1,2,4,8,6,2,… 3: 1,3,9,7,1… 4: 1,4,6,4,… 5: 1,5,5,5… 6: 1,6,6,

2021-04-01 22:58:00 155

原创 hdu 1021 Fibonacci Again 斐波那契数列

Fibonacci Again 斐波那契数列 添加链接描述 法1 F(N)%3=(F(N-1)%3+F(N-2)%3)%3 (运用到模运算) #include <stdio.h> #include <stdlib.h> int F(int n){ if(n<2) { if(n==0) return 7; else if(n==1) return 11; else

2021-04-01 21:56:42 139

原创 hdu 1108 最小公倍数

最小公倍数 特点:最小公倍数=n*m/最小公约数 (采用辗转相除法快速解定战场) 添加链接描述 1108题编程 #include<stdio.h> int main() { int n,m,tn,tm,a; while((scanf("%d%d",&n,&m))!=EOF){ tn=n;//开始 tm=m; a=n%m; while(a){ n=m; m=a; a=n%m; }//结束 printf("%d\n",(tn*tm)

2021-04-01 21:20:45 125

原创 hdu 1001 Sum Problem A+B

Sum Problem A+B(输入与输出形式问题) 添加链接描述 1001题编程 #include&lt;stdio.h&gt; int main() { int a,n; int i; while(scanf("%d",&a)!=EOF){//注意1 n=0; for(i=1;i&lt;=a;++i){ n+=i; } printf("%d\n\n ",n);//注意2 } return 0; } 1.这是一道四处可见的A+B练习

2021-04-01 21:01:03 114

原创 hdu 1019 Least Common Multiple最小公倍数

Least Common Multiple最小公倍数添加链接描述 1019题编程 结论:遇最小公倍数,想辗转相除法 1.使用辗转相除法要快速,节时。 #include<stdio.h> int main(void) { int a[10010],b,i,t,m,n,z,gbs; scanf("%d",&t); while(t){ scanf("%d",&b); for(i=0;i<b;++i){ scanf("%d",&a[i]);

2021-03-28 20:58:35 103

空空如也

空空如也

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

TA关注的人

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