2019年4月zstu月赛A: 我不会做

问题 A: 我不会做

时间限制: 1 Sec  内存限制: 128 MB

题目描述

众所周知,duxing201606就是plw. 

然而已经9102年了,plw仍旧没有npy。plw非常难过,于是他打开了他熟悉的zhihu.com/search 想找到原因 

 

看了高赞回答后,plw感觉这辈子脱单渺茫,于是去找某C姓半仙算了一卦自己未来的npy. 

只见那C姓半仙拿出一瓶5L的肥宅快乐水,且向青空径直撒了一把M记薯条,嘴里念念有词,霎时间,龙吟虎啸,鹤唳莺鸣,肥宅欢乐水便全部转移到了plw面前的铜盂中,说来也神了,那薯条到了盂中便组成了一个个汉字: 

“眉如翠羽,肌似羊脂。脸衬桃花瓣,鬟堆金凤丝。秋波湛湛妖娆态,春笋纤纤娇媚姿” 

plw看了之后非常开心,赶忙接着问C半仙自己什么时候能找到npy,C半仙知道plw对二进制很熟悉,于是给他提了一个问题并告知plw他要的答案就在这个问题的答案中: 

给定一个X(若X为小数则取整数部分),如果X在二进制形式下所有位都为1,则输出X在二进制下的位数,反之则输出 

Areyou[really*X]sure??):[pardon*X]??? 

其中需要注意的是上述字符串中[string*X]代表连续输出string字符串X(向上取整)次,且各个字母之间无空格,建议直接从题面复制 

输入

文件第一行一个正整数T(T<=10) 

接下来有T行,每行给定一个非负数X(X<=1<<20) 

输出

T行,每行一个正整数或一段字符串 

样例输入

1
3


样例输出
2

 1 /*题解A:
 2 按题意输出,请注意”??(“一起输出, 在评测中会被当成’[‘,所以要分开输出,还有要看清楚什么时候向上取整,什么时候向下取整。(Trigraph了解一下,C语言没学好害人啊)*/
 3 
 4 #include<stdio.h>
 5 int main() {
 6    int   t,  i;
 7    long long s = 0,n = 1;
 8    double x;
 9    int intx,doux;
10    scanf("%d",&t);
11    while(t--){
12     s = 0,n = 1 ;
13     scanf("%lf",&x);
14     intx = (int)x;doux = ((int)(x*10)) % 10;
15 
16   //  printf("%d %d\n",intx,doux);
17     for( i = 1 ; i <= 62;i++){
18         s+=n;
19         if(s == intx)break;
20         n*=2;
21         if(s > intx) i = 63;
22    //     printf("%d %d %d\n",s,n,intx) ;
23     }
24     if(i <= 62) printf("%d\n",i);
25     else {
26      if(doux > 0)intx++; //printf("%d\n",intx);
27      printf("Areyou");
28      for(i = 0 ; i < intx;i++)printf("really");
29      printf("sure??");printf("):");
30      for(i = 0 ; i < intx;i++)printf("pardon");
31      printf("???\n");
32     }
33 }
34       return 0;
35  }
View Code
  • 这道题要注意的只有trigraph和向上取整     //谁知道自己为什么这么久了还不知道向上取整呢,,可能这就是菜还懒吧。
  • 清楚这两点这题就很好写了,数据不大,甚至比自己设想的还要小很多。

//月赛本来是请假了的,还剩两小时打算过来签到结果签到失败,一是确实不知道trigraph,二是因为u盘没带机房电脑自带只有cfree(用的gcc),然后就车祸现场——爆零了

//后面还有一道题签到失败,下个页面再说吧

猜你喜欢

转载自www.cnblogs.com/h404nofound/p/10786232.html