zoukankan      html  css  js  c++  java
  • 6、牛牛有一个数组,里面的数可能不相等,现在他想把数组变为:所有的数都相等。问是否可行。 牛牛可以进行的操作是:将数组中的任意一个数改为这个数的两倍。 这个操作的使用次数不限,也可以不使用,并且可以对同一个位置使用多次。

    牛牛有一个数组,里面的数可能不相等,现在他想把数组变为:所有的数都相等。问是否可行。
    牛牛可以进行的操作是:将数组中的任意一个数改为这个数的两倍。
    这个操作的使用次数不限,也可以不使用,并且可以对同一个位置使用多次。
    输入描述:

    输入一个正整数N (N <= 50)
    接下来一行输入N个正整数,每个数均小于等于1e9.

    输出描述:

    假如经过若干次操作可以使得N个数都相等,那么输出"YES", 否则输出"NO"

    输入例子:

    2
    1 2

    输出例子:

    YES

    思路:数组中的每一个数字都除以2,一直除到他是一个奇数,比较数组中的每个奇数,都相等则输出yes
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 int main()
     4 {
     5     int n;
     6     scanf("%d",&n);
     7     int a[n] ;
     8     for (int i = 0; i < n; ++i) {
     9         scanf("%d",& a[i]);
    10     }
    11     for (int i = 0; i < n; ++i) {
    12         while (a[i] % 2 == 0) 
    13             a[i] /= 2;
    14     }
    15     for (int i = 0; i < n; ++i) {
    16         if (a[i] != a[0]) {
    17             printf("NO");
    18             return 0;
    19         }
    20     }
    21     printf("YES");
    22     return 0;
    23 }

     

  • 相关阅读:
    Java基础教程(15)--枚举类型
    Java基础教程(14)--嵌套类
    Java基础教程(13)--包
    Java基础教程(12)--深入理解类
    Java基础教程(11)--对象
    Java基础教程(10)--类
    Java基础教程(9)--流程控制
    Java基础教程(8)--表达式、语句和块
    Java基础教程(7)--运算符
    Java基础教程(6)--数组
  • 原文地址:https://www.cnblogs.com/olivegyr/p/6984512.html
Copyright © 2011-2022 走看看