变色之战!
题目链接:http://codeforces.com/contest/270
题目A:给出一个角度,问其能否是正多边形的内角
解题思路:打表
解题代码:
#include<stdio.h> int main() { int k ,j = 1,temp ; double temp1; int a[2000]; for (k = 3; k < 20000;k++) { temp1 = (k-2)*180.0/k; temp = temp1; if (temp1 == temp) { a[j++] = temp; } } int n ,i, s; scanf("%d",&n); for (i = 1; i <= n; i++) { scanf("%d",&s); int t; for (t = 1; t < j ; t++) if (s ==a[t]) { printf("YES\n"); break; ; } if (t == j) printf("NO\n"); } return 0; }
题目B:给定一列时刻表,找最少更新时刻表数
解题思路:找最后一个大于下一个数的数
解题代码:
1 #include<stdio.h> 2 int main() 3 { 4 int n , i , t = 0,temp; 5 scanf("%d",&n); 6 for (i =1 ;i <= n ;i++) 7 { 8 int s ; 9 scanf("%d",&s); 10 11 if ( i > 1 && s < temp) 12 t = i -1; 13 temp = s; 14 } 15 printf("%d\n",t); 16 17 return 0; 18 }
题目C:给定盒子,问最小能装下所有盒子的大小
解题思路:与面积挂钩!
解题代码:
1 #include<stdio.h> 2 #include <math.h> 3 int main() 4 { 5 int n ,i ,tempk, tempa, k , a ; 6 scanf("%d",&n); 7 scanf("%d %d",&k,&a); 8 tempk = k ; 9 tempa = a; 10 for(i = 2;i <= n; i++) 11 { 12 scanf("%d %d",&k,&a); 13 if (k - tempk >= 18 ||pow(4.0,k-tempk)*a >= tempa ) 14 { 15 tempk = k; 16 tempa = a ; 17 } 18 } 19 for (i = 1; ; i++) 20 if(pow(4.0,i) >= tempa) 21 { printf("%d",tempk+i); 22 23 break; 24 } 25 return 0 ; 26 }