int main()
{
int arr1[10] = {0};
int i ;
int j;
int n=0;
int sum=1;
int max;
for(i=0;i<10;i++)
scanf("%d",&arr1[i]);
max = arr1[0]
for(i=0;i<10;i++)
{
if (max
}//找出arr1数组的最大值
for(i=0;i<10;i++)
{
for(j=0;sum<=max ;j++)
{
sum = 2*sum; //计算2的n次的值
if (arr[i]==sum)
n++;
break;
}
}
printf("等于2的n次方的个数为%d",n);
}
//使用的是C++代码 直接用了vector是因为比较懒不想列数组
//在这里帮你把逻辑都写好了 剩下的只是需要更改输入和输出,应该没有问题吧
#include
#include
int main() {
int n;
std::vectorans;
while(std::cin >> n) {
if(n &(n - 1)) ans.push_back(n);
}
return ans.size();
}