我不会做


我不会做


浙江理工大学月赛
题目描述
众所周知,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[reallyX]sure??):[pardonX]???
其中需要注意的是上述字符串中[string*X]代表连续输出string字符串X(向上取整)次,且各个字母之间无空格,建议直接从题面复制

输入

文件第一行一个正整数T(T<=10)
接下来有T行,每行给定一个非负数X(X<=1<<20)

输出

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

样例输入

1
3

样例输出

2

源代码:

#include<bits/stdc++.h>
using namespace std;
int t,n,m,k,p,l,r,u,v,ans,cnt,smu,po,sum,a[110000];
char str;
struct node {};
int main() {
	scanf("%d",&t);
	while(t--) {
		double x;
		scanf("%lf",&x);
		n=x,sum=0,po=0;
		if(x==0) {
			cout<<"Areyou"<<"sure"<<"?"<<"?"<<")"<<":"<<"?"<<"?"<<"?"<<endl;
			continue;
		}
		while(n) {
			sum++,po+=(n%2),n/=2;
		}
		if(sum==po&&sum!=0) {
			cout<<sum<<endl;
			continue;
		} else {
			n=x;
			if(n!=x)n++;
		}
		cout<<"Areyou";
		for(int i=1; i<=n; i++)cout<<"really";
		cout<<"sure"<<"?"<<"?"<<")"<<":";
		for(int i=1; i<=n; i++)cout<<"pardon";
		cout<<"?"<<"?"<<"?"<<endl;

	}
#ifdef DEBUG
	printf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif
	return 0;
}

AC


发布了50 篇原创文章 · 获赞 51 · 访问量 1423

猜你喜欢

转载自blog.csdn.net/m0_45682806/article/details/103333664