《算法竞赛入门经典》第一章习题答案

该篇博客提供了《算法竞赛入门经典》第一章的习题解答,包括计算平均数、华氏到摄氏温度转换、连续和、正弦余弦函数值、打折计算、直角三角形判断以及闰年检测等算法问题,涉及c语言编程和算法应用。

习题1-1 平均数(average)
输入3个整数,输出它们的平均值,保留3位小数。

#include <stdio.h>
int main()
{   
	int a,b,c;  
  	scanf("%d%d%d",&a,&b,&c); 
  	printf("%.3f\n",(a+b+c)/3.0);   //必须除以3.0
  	return 0;
  	}

习题1-2 温度(temperature)
输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。

#include <stdio.h>
int main()
{  
	 double f; 
  	 scanf("%lf",&f);  
  	 printf("%.3f\n",5*(f-32)/9); 
    	 return 0;
 }

习题1-3 连续和(sum)
输入正整数n,输出1+2+…+n的值。提示:目标是解决问题,而不是练习编程。

#include <stdio.h>
int main()
{    int n;  
  	scanf("%d",&n); 
 	printf("%d\n",n*(n+1)/2); //等差数列求和公式
        return 0;
}

习题1-4 正弦和余弦(sin和cos)
输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。

#include <stdio.h>
#include<math.h>
#include PI acos(-1.0) //根据反余弦函数求PAI  
int main()
{    
	int n;   
  	scanf("%d",&n); 
     	printf("%f %f\n",sin(n/180.0*PI),cos(n/180.0*PI));
        return 0;
 }

习题1-5 打折(discount)
一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。

#include <stdio.h>
int main()
{    int n;  
  	scanf("%d",&n);
     	printf("%.2f\n",95.0*n>300.0?95.0*n*0.85:95.0*n); 
       	return 0;
}

习题1-6 三角形(triangle)
输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构成三角形,则输出not a triangle。

#include <stdio.h>
int main()
{    
	int a,b,c;    
	scanf("%d%d%d",&a,&b,&c);  
  	if(a+b>c&&a+c>b&&b+c>a)
  	{     
     	if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)   
     	 printf("yes\n");   
       	 else          
        printf("no\n");
         }    
        else     
        printf("not a triangle\n");  
        return 0;
}

习题1-7 年份(year)
输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。提示:简单地判断除以4的余数是不够的

#include <stdio.h>
int main()
{    
	int n;    
	scanf("%d",&n);
    	if(n%400==0||(n%4==0&&n%100!=0))    //四年一润,百年一润,四百年再润
        printf("yes\n");  
        else    
        printf("no\n"); 
        return 0;
}
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值