蓝桥杯
TanJ2014
这个作者很懒,什么都没留下…
展开
-
Fibonacci数列
蓝桥杯入门训练问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。#include<stdio.h>#define m 10007int main(){ int n,sum=0,...原创 2018-02-09 13:10:43 · 218 阅读 · 0 评论 -
百鸡问题(王道机试6.1)
用小于等于n元去买100只鸡,大鸡5元一只,小鸡3元一只,还有1/3元每只的小小鸡,分别记x,y,z。编程求解所有可能解。#include <stdio.h>int main(){ int n; int x,y,z; while(scanf("%d",&n)!=EOF){ for(x=0;x<=n/5;x++){ for(y=0;y<=(n-5*...原创 2018-03-06 13:35:41 · 202 阅读 · 0 评论 -
递归法分解数字
#include<stdio.h>void fun(int n){ if(n==0){ return; } fun(n/10); printf("%d ",n%10);}int main(){ long sum; scanf("%ld",&sum); fun(sum); return 0;}原创 2018-03-13 15:21:23 · 1191 阅读 · 0 评论 -
(回溯法)N皇后问题
(回溯法)N皇后问题#include <stdio.h>#include <math.h>#define N 6 //N皇后 int a[N]; //记录皇后位置列号 int ans=0;//记录有多少种答案 int judge(int k){ int i; for(i=0;i<k;i++){ if(abs(a[i]-a[k])==k-i||a[k]...原创 2018-03-13 16:45:43 · 232 阅读 · 0 评论 -
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#include <stdio.h>#include <string.h>int main(){ char c; int num1=0,num2=0,num3=0,num4=0; while(1){ c = getchar(); if(c=='\n'){ break; } ...原创 2018-03-19 15:50:58 · 424 阅读 · 0 评论 -
求s=a+aa+aaa+aaaa+aa...a的值
//题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。#include <stdio.h>int main(){ int i,n,a,ans=0,tmp=0;//tmp用来存储每一次要加的数,如2,22,222等 printf("input a n:"); s...原创 2018-03-19 16:13:22 · 2642 阅读 · 0 评论 -
汉诺塔III(王道机试6.4)
将n个盘子从第一个柱子上移到第三个柱子上,必须经过中间第二个柱子。(递归实现)大的盘子必须始终在小的盘子下面。#include <stdio.h>long long function(int n){ if(n==1){ return 2; }else{ return 3*function(n-1)+2; }}int main(){ int n; while(sc...原创 2018-03-06 14:59:57 · 155 阅读 · 0 评论 -
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。判断比赛名单。
/*两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。*/#include <stdio.h>int main(){ int i,j,k; //a,b,c for(i='X';i<='Z';i++){ for(j='X';j<...转载 2018-03-19 19:20:05 · 25293 阅读 · 1 评论 -
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
//题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。#include <stdio.h>int fun(int n){ if(n==1||n==2){ return 1; }else{ return fun(n-1)+fun(n-2); }}int main(){ int n=20; double an...原创 2018-03-19 20:10:57 · 2786 阅读 · 0 评论 -
将数1——N进行全排列(递归)
//全排列#include <stdio.h>int count=0;int swap(int *c,int *b){ int tmp; tmp = *c; *c = *b; *b = tmp;}int fun(int *a,int left,int right,int len){ int i; if(left==right){ count++; for(...原创 2018-03-13 20:10:03 · 463 阅读 · 0 评论 -
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。请问
/*题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?*/#include <stdio.h>int fun(int n){ if(n==1){ return 10; } else{ return ...原创 2018-03-20 21:05:58 · 7472 阅读 · 0 评论 -
某个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?
(递归)某个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?#include <stdio.h> int fun(int n){ if(n==0||n==1) return 0; if(n==2) return 1; else{ return (n-1)*(fun(n-1)+fun(n-2)); } }int m...原创 2018-03-13 14:44:39 · 3878 阅读 · 2 评论 -
递归实现阶乘
//用递归实现阶乘#include <stdio.h> int fun(int n){ if(n==1||n==0){ return 1; } else{ return n*fun(n-1); }}int main(){ int n; while(scanf("%d",&n)){ printf("%d!=%d",n,fun(n)); } re...原创 2018-03-13 13:52:51 · 4067 阅读 · 0 评论 -
输出9*9口诀
//输出9*9口诀#include <stdio.h>int main(){ int i,j; for(i=1;i<=9;i++){ for(j=1;j<=i;j++){ printf("%d*%d=%2d ",i,j,i*j); } printf("\n"); } return 0;}原创 2018-03-19 15:22:35 · 4711 阅读 · 1 评论 -
基础练习 数列排序
问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9#include<stdio.h>int main(){ int n,i,...原创 2018-02-10 16:30:45 · 459 阅读 · 0 评论 -
询问序列中第l个数到第r个数中第K大的数是哪个
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的答案。样例输入51 2 3 4 521 ...原创 2018-03-10 22:45:18 · 1576 阅读 · 0 评论 -
求两个正整数的最小公倍数
问题描述 编写一函数lcm,求两个正整数的最小公倍数。样例输入一个满足题目要求的输入范例。例:3 5样例输出与上面的样例输入对应的输出。例:数据规模和约定 输入数据中每一个数的范围。 例:两个数都小于65536。//最小公倍数 =a*b/(最大公约数) #include <stdio.h>int gcd(int n,int m){ int tmp; if(m==0){...原创 2018-03-10 23:13:40 · 9890 阅读 · 0 评论 -
十六进制转十进制
//十六进制转十进制#include <stdio.h>#include <string.h>void trans(char c[]){ int ans=0,len=strlen(c); int i; for(i=0;i<len;i++){ if(c[i]>='A'&&c[i]<='Z'){ ans = ans*16+...原创 2018-03-17 15:54:54 · 265 阅读 · 0 评论 -
十进制转十六进制
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。输入格式 输入包含一个非负整...原创 2018-03-17 15:58:16 · 408 阅读 · 0 评论 -
将a进制数的n转换成b进制数
#include <stdio.h>#include <string.h>int toShi(int n,char a[]){ int len = strlen(a); int i,ans=0; for(i=0;i<len;i++){ if(a[i]>='0'&&a[i]<='9'){ ans=ans*n+a[i]-'0...原创 2018-03-17 20:39:11 · 2508 阅读 · 1 评论 -
利用字母可以组成一些美丽的图形,为什么总是超时!!!
#include <stdio.h>int main(){ int n,m; int i,j,k; while(scanf("%d%d",&n,&m)){ if(n<1||m<1||n>26||m>26){ return 0; } for(i=0;i<n;i++){ for(k=i;k>0;k--){...原创 2018-03-05 21:58:24 · 480 阅读 · 0 评论 -
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?//题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include <stdio.h>#include <math.h>int judge(int n){ int tmp1,tmp2; tmp1=sqrt(n+100);...原创 2018-03-19 14:26:28 · 1620 阅读 · 0 评论 -
输入某年某月某日,判断这一天是这一年的第几天?
//输入某年某月某日,判断这一天是这一年的第几天?#include <stdio.h>//判断某月的天数 int Month_Day(int y,int n){ if(n==2){ if((y%4==0&&y%100!=0)||(y%400==0)){ return 29; }else{ return 28; } } else if...原创 2018-03-19 15:18:16 · 977 阅读 · 0 评论 -
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
//给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。#include <stdio.h>int count=0;int fun(int n){ if(n==0){ printf("\n%d位数\n",count); return count; } else{ count++; printf("%d",n%10); fun(n/1...原创 2018-03-20 21:20:38 · 1378 阅读 · 0 评论