本人做了30分钟,代码显示答案错误,请老手纠正。
TooY0ung的数学难题
描述
TooY0ung给定四个无符号32位整数a b c d求A=a+b×2^32+c×2^64+d×2^96
是否是4的幂次。
**注:若一个数是4的幂次 则存在一个整数n使得4^n=A。
**
输入
输入有多组数据 每组数据有四个无符号32位整数a,b,c,d.
输出
每组数据输出一行 若a+b×2^32+c×2^64+d×2^96
是4的幂次,输出"Yes"否则输出"No"(不含双引号)
输入样例 1
4 0 0 0
1 2 3 4
0 0 0 1
输出样例 1
Yes
No
Yes
提示
无符号32位整数(unsigned int)范围是[0,2^32-1]
数据范围:
对于20%的数据输入只包含一组数据。
对于额外的20%数据输入只包含三组数据。
对于额外的60%的数据输入数据组数不限。
给个提示:
关于如何进行多组数据输入:
while(cin>>a>>b>>c>>d)即可
#include<bits/stdc++.h>
using namespace std;
bool simi(int n){
if(n>=1&&(n&(n-1))==0)cout<<"Yes";
else cout<<"No";
}
int main(){
int a,b,c,d,z;
while(cin>>a>>b>>c>>d){
z=a+b*2^32+c*2^64+d*2^96;
simi(z);
}
return 0;
}
以上是本人代码,请纠正 勿喷
对于正常人来说此题非常简单
z=a+b2^32+c2^64+d*2^96; 2^32 等求数的几次方用错了‘^' 符号, 应是:pow(2, 32)
看看你的输出
可以实现。以下是C语言代码:
这样试试