結果

問題 No.64 XORフィボナッチ数列
ユーザー kuramukuramu
提出日時 2016-01-21 01:27:55
言語 Java21
(openjdk 21)
結果
WA  
実行時間 -
コード長 1,904 bytes
コンパイル時間 2,628 ms
コンパイル使用メモリ 78,524 KB
実行使用メモリ 53,924 KB
最終ジャッジ日時 2023-10-21 13:39:02
合計ジャッジ時間 9,270 ms
ジャッジサーバーID
(参考情報)
judge14 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 51 ms
53,924 KB
testcase_01 AC 48 ms
53,812 KB
testcase_02 AC 51 ms
53,908 KB
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 TLE -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) {
	      BufferedReader stdReader =new BufferedReader(new InputStreamReader(System.in));

	      try {
	    	  String[] temps = stdReader.readLine().split(" ");
	    	  double F0 = Double.parseDouble(temps[0]);
	    	  double F1 = Double.parseDouble(temps[1]);
	    	  double N = Double.parseDouble(temps[2]);
	    	  double F = F0;
	    	  for(double i=2;i<N+1;i++){
	    		  String str1 =Integer.toBinaryString((int)F0);
	    		  String str2 =Integer.toBinaryString((int)F1);
	    		  StringBuilder sb = new StringBuilder();
	    		  if(str1.length()>str2.length()){
	    			  int j=0;
	    			  for(j=0 ;j<str1.length()-str2.length();j++){
	    				  sb.append(str1.charAt(j));
	    			  }
	    			  for(int k=0;k<str2.length();k++){
	    				  if((""+str2.charAt(k)).equals(""+str1.charAt(j))){
	    					  sb.append("0");
	    				  }else{
	    					  sb.append("1");
	    				  }
	    				  j++;
	    			  }
	    		  }else if (str1.length()<str2.length()){
	    			  int j=0;
	    			  for(j=0 ;j<str2.length()-str1.length();j++){
	    				  sb.append(str2.charAt(j));
	    			  }
	    			  for(int k=0;k<str1.length();k++){
	    				  if((""+str1.charAt(k)).equals(""+str2.charAt(j))){
	    					  sb.append("0");
	    				  }else{
	    					  sb.append("1");
	    				  }
	    				  j++;
	    			  }
	    		  }else{
	    			  for(int j=0;j<str1.length();j++){
	    				  if((""+str1.charAt(j)).equals(""+str2.charAt(j))){
	    					  sb.append("0");
	    				  }else{
	    					  sb.append("1");
	    				  }
	    			  }
	    		  }
		    	  F = (double)Integer.parseInt(sb.toString(),2);
		    	  F0 = F1;
		    	  F1 = F;
	    	  }
	    	  System.out.println((int)F);
	    	  } catch (IOException e) {
			e.printStackTrace();
	      }
	}	
}
0