自定义博客皮肤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 111

原创 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 214

原创 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 792

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

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

2021-05-28 16:06:40 204

原创 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 96

原创 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 126

原创 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 122

原创 斐波那契数列公式

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

2021-05-16 16:47:41 614

原创 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 77

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

sort函数使用方法

2021-05-14 17:54:01 54

原创 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 55

原创 编程练习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 31 2 34 5 67 8 9输入样例:2 3 15 6 48 9 7...

2021-05-08 17:14:25 101

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

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

2021-05-08 16:42:40 1488 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 1178

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

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

2021-04-12 00:18:14 4864

原创 hdu 1009 FatMouse‘ Trade(贪心)

FatMouse’ Trade(贪心)添加链接描述#include <bits/stdc++.h>using namespace std;#define MXN 1010int 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 93

原创 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 60

原创 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 64

原创 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 62

原创 hdu 1060 Leftmost Digit

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

2021-04-01 23:21:47 50

原创 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 49

原创 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 108

原创 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 95

原创 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 76

原创 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 74

原创 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 74

空空如也

空空如也

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

TA关注的人

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