• 韩信点兵、输出整数各位数字、支票面额、龟兔赛跑、到底是不是太胖了


    7-36 韩信点兵 (10 分)

    在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:

    按从1至5报数,记下最末一个士兵报的数为1;
    再按从1至6报数,记下最末一个士兵报的数为5;
    再按从1至7报数,记下最末一个士兵报的数为4;
    最后按从1至11报数,最末一个士兵报的数为10;
    请编写程序计算韩信至少有多少兵。

    输入格式:
    本题无输入

    输出格式:
    输出韩信至少拥有的士兵人数。

    #include <stdio.h>
    int main()
    {
    	int i;
    	for(i=1;;i++){
    		if((i%5==1)&&(i%6==5)&& (i%7==4)&&(i%11==10)){
    			printf("%d",i);
    			return 0;
    		}
    	}
     } 
    

    7-37 输出整数各位数字 (15 分)

    本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

    输入格式:
    输入在一行中给出一个长整型范围内的非负整数。

    输出格式:
    从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。

    输入样例:

    123456
    

    输出样例:

    1 2 3 4 5 6 
    
    #include <stdio.h>
    int main()
    {
    	char c;
    	do{
    		scanf("%c",&c);
    		if(!(c>='0'&&c<='9')){//利用最后输入的回车键也会被看做字符被scanf读取的特点跳出循环。
    			break;
    		}
    		printf("%c ",c);
    	}while(c>='0'&& c<='9');
    	return 0;
    }
    

    7-38 支票面额 (15 分)

    一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?

    输入格式:
    输入在一行中给出小于100的正整数n。

    输出格式:
    在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。

    输入样例1:

    23
    

    输出样例1:

    25.51
    

    输入样例2:

    22
    

    输出样例2:

    No Solution
    
    #include <stdio.h>
    int main()
    {
    	int f,y,n,cont=0;
    	scanf("%d",&n);
    	for(f=0;f<100&&cont !=1;f++){
    		for(y=0;y<100;y++){
    			if(98*f-199*y==n){
    				printf("%d.%d",y,f);
    				cont=1;
    				break;
    			}
    		}
    	}
    	if(cont==0){
    		printf("No Solution
    ");
    	}	
    	return 0;
    }
    

    解析:
    根据题目可以列出以下式子:
    100f+y-n=200y+f
    即: 98f-199y=n
    ∵f<100 && n>0
    ∴f<100; y<=49

    注意: y、f都必须取到0,因为当n=0时,y、f都为0,此时是满足题目要求的。

    7-39 龟兔赛跑 (20 分)

    乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

    输入格式:
    输入在一行中给出比赛时间T(分钟)。

    输出格式:
    在一行中输出比赛的结果:乌龟赢输出@@,兔子赢输出_,平局则输出--;后跟1空格,再输出胜利者跑完的距离。

    输入样例:

    242
    

    输出样例:

    @_@ 726
    
    #include <stdio.h>
    int main()
    {
    	int T,g,r=0,i;
    	scanf("%d",&T);
    	for(i=1;i<=T;i++){
    		g=3*i;
    		r=r+9;
    		if(i%10==0){
    			if(r>g){
    				i=i+30;
    			}
    		}
    	}
    	g=3*T;
    	if(g>r){
    		printf("@_@ %d",g);
    	}else if(g<r){
    		printf("^_^ %d",r);
    	}else{
    		printf("-_- %d",r);
    	}	
    	return 0;
    }
    

    7-40 到底是不是太胖了 (10 分)

    据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

    输入格式:
    输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。

    输出格式:
    为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!。

    输入样例:

    3
    169 136
    150 81
    178 155
    

    输出样例:

    You are wan mei!
    You are tai shou le!
    You are tai pang le!
    
    #include <stdio.h>
    #include <math.h>
    int main()
    {
    	int h[20]={0},w[20]={0},b[20]={0},i,n;
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		scanf("%d %d",&h[i],&w[i]);
    		b[i]=(h[i]-100)*2*0.9;
    		if(abs(w[i]-b[i])<(b[i]*0.1)){
    			printf("You are wan mei!
    ");
    		}else if(abs(w[i]-b[i])>=(b[i]*0.1)&&(w[i]>b[i])){
    			printf("You are tai pang le!
    ");
    		}else{
    			printf("You are tai shou le!
    ");
    		}		
    	}
    	return 0;
    }
    
    欢迎查阅
  • 相关阅读:
    golang不想http自动处理重定向的解决方案
    学习WebDav
    keepass+坚果云管理我的密码
    定制右键功能,看这一篇就够了
    翻转二叉树
    加密sqlite3数据库文件
    算出cron表达式接下来几次执行时间
    关于斐波那契数列的3种解法
    golang通过cgo调用lua
    学习go语言并完成第一个作品
  • 原文地址:https://www.cnblogs.com/gh110/p/11892801.html
Copyright © 2020-2023  润新知