个人学习之c语言
坚持学习永远都快乐
快乐学习的每一天
坚持学习是一件很快乐的事情
展开
-
c语言竞赛(中等题)
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?(母牛不计)输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输入数据的结束,不做处理。#include<stdio.h>int main(){ int year,ox[55]={0},i; while(~scanf("%d",&year)) {原创 2021-11-25 16:22:45 · 300 阅读 · 0 评论 -
c语言竞赛入门
输入两个整数a和b,计算a+b的和(同时计算多组值)#include<stdio.h>int main(){ int a,b; while(~scanf("%d%d", &a, &b)) printf("%d\n",a+b); return 0;}原创 2021-11-25 14:18:00 · 216 阅读 · 0 评论 -
c语言计算机二级难题
定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。第一阶段第一阶段实现10-999范围内整数的判断#include<stdio.h>int main(){ int a,digits; while(~scanf("%d",&原创 2021-11-24 20:51:27 · 851 阅读 · 0 评论 -
c语言计算机二级
输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。#include <stdio.h>int main(){ int i,n[9],sum =0,aver,m=10,sign=0,j; for(i=0;i<10;i++) { scanf("%d",&n[i]); sum+=n[i]; } aver=sum/m; for(i=0;i<10;i++) { if原创 2021-11-24 19:44:12 · 623 阅读 · 0 评论 -
01背包问题
01背包问题详解01背包是一种动态规划问题。动态规划的核心就是状态转移方程,本文主要解释01背包状态转移方程的原理。问题描述01背包问题可描述为如下问题:有一个容量为V的背包,还有n个物体。现在忽略物体实际几何形状,我们认为只要背包的剩余容量大于等于物体体积,那就可以装进背包里。每个物体都有两个属性,即体积w和价值v。问:如何向背包装物体才能使背包中物体的总价值最大?为什么不用贪心?我在第一次做这个题目时考虑的是贪心算法。所谓贪心问题,就是每一步决策都采取最优解,按照此方案最后结果也是最优解。转载 2021-11-23 21:00:22 · 599 阅读 · 0 评论 -
超有价值的OI难题(01背包问题)
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是辰辰,你能完成这个任务吗?输入输入第一行有两个整数T(1 <= T <= 1000)和M(1 <= M原创 2021-11-23 20:52:58 · 163 阅读 · 0 评论 -
挑战c语言OI难题
你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算#include<stdio.h> #include<string.h> int main() { int a,b,d,sum=0,i,len; char c,s[10];原创 2021-11-22 21:21:18 · 405 阅读 · 0 评论 -
c语言刷题(oi难题)
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?n为100时,sum为50;n为10时,sum为5;n为79时,sum为39。int main(){ int a,原创 2021-11-21 11:21:23 · 441 阅读 · 0 评论 -
c语言刷题
已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 ,F(2)=1,F(n)=F(n-1)+F(n-2)(n>2),试求F(2)+F(4)+F(6)+……+F(50)值答案为(1134903170)#include<stdio.h>main(){int i;double a=1,b=1,s,sum=1;for(i=3;i<51;i++){ s=a+b; a=b; b=s; if(i%2==0) su原创 2021-11-21 10:12:42 · 953 阅读 · 0 评论 -
c语言刷题
已知Fibonacci数列:1,1,2,3,5,8,……,F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2),试求F(50)值答案为(12586269025)#include<stdio.h>main(){int i;double a=1,b=1,s=0;for(i=3;i<51;i++){ s=a+b; a=b; b=s;} printf("s=%lf\n",s);}...原创 2021-11-20 16:07:56 · 106 阅读 · 0 评论 -
c语言刷题
已知一个数列的前3个数为0,1,2,以后每个数为前3个数的和,编程序求此数列的第35项。#include<stdio.h>main(){int i,a=0,b=1,c=2,s;for(i=4;i<36;i++){ s=a+b+c; a=b; b=c; c=s;}printf("%d\n",c);}原创 2021-11-20 16:06:48 · 228 阅读 · 0 评论 -
c语言刷题
已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。答案为(18947744)#include<stdio.h>main(){int i,a=0,b=0,c=1,s,sum=1;for(i=4;i<31;i++){ s=a+b+c; a=b; b=c; c=s; sum+=s;}printf("sum=%d\n",sum);}...原创 2021-11-20 16:05:45 · 1470 阅读 · 0 评论 -
c语言刷题
高次方程尾数的问题:求13的298次方的位最后三数是多少?编程实现之答案为(929)#include<stdio.h>#include<math.h>main(){int a,b=13;long int s=1;for(a=1;a<299;a++){s*=b;s%=1000;}printf("%ld",s);}原创 2021-11-20 16:03:21 · 425 阅读 · 0 评论 -
c语言刷题
求方程5X-4Y=2,在|X|<=100,|Y|<=50内的整数解中|X|+|Y|最大值。答案为(86)#include<stdio.h>>main(){int a,b,max=0,s=0;for(a=-100;a<=100;a++)for(b=-50;b<=50;b++) if(a==((4*b)+2)/5.0) {if(a<0) a=-a; if(b<0) b=-b;s=a+b;if(s>ma原创 2021-11-20 16:02:00 · 235 阅读 · 0 评论 -
c语言刷题
已知A,B为正整数, A<B, A*B=716699且要求A+B取最小值,求满足上述条件的B值。#include <stdio.h>#include<math.h>main(){int a,b,min=716699,i;for (i=1;i<sqrt(716699);i++){if(716699%i==0)b=716699/i;if((i+b)<min)a=i,min=i+b;}printf("B=%d\n",a);}...原创 2021-11-20 16:00:57 · 439 阅读 · 0 评论 -
c语言刷题
已知A<B, A和B均为正整数,且A*B=716699,求A+B的最小值答案为(1836)#include<stdio.h>#include<math.h>main(){int a,b,min=716699,i;for (i=1;i<sqrt(716699);i++){if(716699%i==0)b=716699/i;if((i+b)<min)min=i+b;}printf("min=%d\n",min);}...原创 2021-11-20 15:59:51 · 279 阅读 · 0 评论 -
c语言刷题
若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如: 由于7396=8686,且7+3+9+6=25=55,则称7396是“四位双平方数”。若把所有“四位双平方数”按升序排列,求前5个“四位双平方数”的和。答案为10132#include<stdio.h>#include<math.h>main(){int i,a,x,y,z,q,s,v,min=10000,j,t=0,n=0;for(i=1000;i<原创 2021-11-20 15:52:20 · 808 阅读 · 0 评论 -
c语言刷题
金星和地球在某一时刻相对于太阳处于某一确定位置,已知金星绕太阳一周为225日,地球绕太阳一周为365日,问两个行星至少经过多少日仍同时回到原来的位置上?答案为(1642)#include<stdio.h>main(){int a,b,n=0;for(a=365;a<(255*365);a++) if(a%365==0&&a%225==0) break;printf("%d\n",a);}...原创 2021-11-20 15:45:28 · 278 阅读 · 2 评论 -
c语言刷题
有60个学生一起买小吃,共花钱100元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的)?(19)include<stdio.h>>main(){int a,b,c,n=0;for(a=1;a<(100/3);a++)for(b=1;b<50;b++)for(c=1;c<100;c++)if((3*a+2*b+c*1)==100&&(a+b+c)==60)n++;原创 2021-11-20 15:42:39 · 541 阅读 · 0 评论 -
c语言刷题
马克思曾经做过这样一道趣味数学题有30个人在一家小饭店里用餐,其中有男人、女人和小孩,每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,共花去50先令。如果要求男人、女人和小孩都有人参与,试求有多少种方案分配男人、女人和小孩的人数#include<stdio.h>>main(){int a,b,c,n=0;for(a=1;a<(50/3);a++)for(b=1;b<25;b++)for(c=1;c<50;c++)if((3*a+2*b+c原创 2021-11-13 11:57:47 · 691 阅读 · 0 评论 -
c语言刷题
要求每解百马百瓦古题。大、小马和马驹共100匹,共驮100片瓦。大马一驮三,小马一驮二,马驹二驮一,一次驮完,三种马都驮,共有多少种组合?#include<stdio.h>>main(){int a,b,c,n=0;for(a=1;a<(100/3);a++)for(b=1;b<50;b++)for(c=1;c<200;c++)if((6*a+4*b+c)==200&&(a+b+c)==100)n++;printf("%d\n",n);原创 2021-11-13 11:55:06 · 595 阅读 · 0 评论 -
C语言刷题
买鸡问题用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。#include<stdio.h>>main(){int a,b,c,n=0;for(a=1;a<(100/5);a++)for(b=1;b<(100/3);b++)for(c=1;c<(100/1);c++)if((15*a+9*b+c*1)==300&&(a+b+c)==100)n++;printf("%原创 2021-11-13 11:52:59 · 552 阅读 · 0 评论 -
c语言刷题
请编写函数fun(),它的功能是:计算130<A+B+C<150且A>B>C的倒勾股数的组数。其中A,B,C是三个小于或等于100正整数,当满足1/A2+1/B2=1/C^2关系时,称为倒勾股数。若fun()函数编写正确,程序的运行结果应为:n=1。注意:部分源程序存在文件prog1.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>int fun(){ int a,b,c原创 2021-11-13 11:48:53 · 337 阅读 · 0 评论 -
c语言刷题
请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。注意: 部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句!#include <stdio.h>#define M 100int fun(char s[], char c){ int i,cc=0; for(i=0;s[i]!='\0';i++)原创 2021-11-13 11:45:19 · 270 阅读 · 0 评论 -
c语言猜数小程序
C语言猜数# include <stdio.h># include <stdlib.h># include <time.h>int main(){ int a,n=0,b; srand(time(0)); a=rand()%100; printf("这是一个猜数游戏\n"); printf("你要输入一个100以内正整数\n"); scanf("%d",&b); do {原创 2021-11-13 11:42:53 · 300 阅读 · 0 评论 -
c语言:爱心代码
c语言表白小程序:爱心#include <stdio.h>#include <math.h>#include <stdlib.h>#define I 20#define R 340int main(){int i,j,e;int a;long time;system("title name");for(i=1,a=I;i<I/2;i++,a--){for(j=(int) ( I-sqrt(I*I-(a-i)*(a-i)) );j>0原创 2021-11-13 11:41:13 · 12868 阅读 · 3 评论