1.数字の組、及びシークアレイの数が0であります
あなたがセットを使用する必要があることに注意してください
インポートjava.util.Scanner; パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ スキャナSC = 新しいスキャナ(System.in)。 文字列[] S = sc.nextLine()スプリット( "" )。 int型のlen = s.length; HashSetの <整数>設定= 新しい HashSetの<> (); 以下のために(int型 ; iがLEN <I ++は、I = 0 ){ set.add(Integer.valueOf(S [i]の.trim()))。 } int型 [] NEWARRAY = 新しい INTを[set.size()]。 int型のインデックス= 0 ; 以下のための(整数I:セット){ NEWARRAY [インデックス ++] = I。 } int型の和= 0 。 以下のために(int型 i = 0; I <newarray.length; iは++ ){ ための(int型 J = I + 1、J <newarray.length; J ++ ){ 場合(NEWARRAY [I] + NEWARRAY [j] == 0 ){ 合計 ++ ; } } } のSystem.out.println(合計)。 } }
2.ターン進進数1
メソッドのJavaを借りる方法1は、実現しています
インポートjava.util.Scanner; パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ スキャナSC = 新しいスキャナ(System.in)。 INT、M = sc.nextInt()。 int型 NUM = 0 ; 文字列str = Integer.toBinaryString(M)。 以下のために(int型 ;)私は(str.lengthを<; I = 0 iは++ ){ 場合(str.charAt(I)== '1' ){ NUM ++ 。 } } のSystem.out.println(NUM)。 } }
方法2は、それらの実装は2のn乗の数プラス1が必要であることに留意されたいです
インポートjava.util.Scanner; パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ スキャナSC = 新しいスキャナ(System.in)。 INT、M = sc.nextInt()。 int型 NUM = 0 ; 一方、(M!= 0 ){ 場合(M == 2 ){ NUM ++ 。 破ります; } もし(mは%2!= 0 ){ NUM ++ 。 } M/ = 2 。 } のSystem.out.println(NUM)。 } }