HDU 2081 手机短号
注意:
- 定义number数组的时候不要用int,要用char
- 注意下字符串的输入方式
#include<stdio.h>
int main(){
int N,i;
char num[12];
scanf("%d",&N);
while(N--){
scanf("%s",&num);
printf("6");
for(i=6;i<11;i++) printf("%c",num[i]);
printf("\n");
}
return 0;
}
注意:
- 按要求模拟即可,每一个小时转30°,每一分钟转6°
- 要求保留整数部分,保留整数部分不是保留0位小数
- t1要注意会超过360 所以应该取余数部分,但是double不能取余,只能用循环做
#include<stdio.h>
#include<math.h>
int main(){
int T;
double h,m,s;
scanf("%d",&T);
while(T--){
scanf("%lf%lf%lf",&h,&m,&s);
double t1,t2;
t1=(h+m/60+s/3600)*30;
t2=(m+s/60)*6;
while(t1>360) t1 -= 360;
int ans=(int)(fabs(t1-t2)>180?360-fabs(t1-t2):fabs(t1-t2));
printf("%d\n",ans);
}
return 0;
}
HDU 2080 夹角有多大II
注意:
- arccos x 在c语言中是 acos x
- 弧度和角度的转换 1°= π/180
#include<stdio.h>
#include<math.h>
int main(){
int T;
double x1,y1,x2,y2;
scanf("%d",&T);
while(T--){
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
printf("%.2lf\n",180*acos((x1*x2+y1*y2)/(sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2)))/3.1415926);
}
return 0;
}