http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1383
睡前一水。
题意:
找出十进制数转换为二进制数中的1的位置。
分析:
没什么难度,那个数组存下就行。
#include <stdio.h> #include <string.h> int main() { int d,n,a[100]; int i,j; scanf("%d",&d); while(d--) { i=0; memset(a,0,sizeof(a)); scanf("%d",&n); while(n) { a[i++]=n%2; n=n/2; } for(j=0;j<=i;j++) { if(a[j]==1) { printf("%d",j); break; } } for(j++;j<=i;j++) if(a[j]==1) printf(" %d",j); printf("\n"); } return 0; }
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1494
题意:
虫子一上一下移动,什么时候爬出去?
分析:注意判断要在上升后break掉。
#include<stdio.h> int main() { int n,u,d; int t,temp; while(scanf("%d%d%d",&n,&u,&d)!=EOF) { if(n==0) break; temp=0; t=0; while(1) { temp+=u; t++; if(temp>=n) break; temp-=d; t++; } printf("%d\n",t); } return 0; }