結果
問題 | No.64 XORフィボナッチ数列 |
ユーザー |
![]() |
提出日時 | 2015-04-11 22:15:10 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 131 ms / 5,000 ms |
コード長 | 1,915 bytes |
コンパイル時間 | 1,987 ms |
コンパイル使用メモリ | 77,576 KB |
実行使用メモリ | 41,408 KB |
最終ジャッジ日時 | 2024-07-04 13:39:09 |
合計ジャッジ時間 | 4,359 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 11 |
ソースコード
import java.util.*;public class Main {public static void main(String[] args) throws Exception {Scanner koko = new Scanner(System.in);long zero = koko.nextLong();long one = koko.nextLong();long n = koko.nextLong();if(n%3==0){System.out.println(zero);}else if(n%3==1){System.out.println(one);}else{String tz = Long.toBinaryString(zero);String to = Long.toBinaryString(one);int min = Math.min(tz.length(),to.length());int max = Math.max(tz.length(),to.length());char[] ans = new char[max];if(tz.length()>to.length()){for(int i=0; i<min; i++){if(tz.charAt(max-1-i)==to.charAt(min-1-i)){ans[max-1-i] = '0';}else{ans[max-1-i] = '1';}}for(int i=0; i<max-min; i++){ans[i] = tz.charAt(i);}}else if(tz.length()<to.length()){for(int i=0; i<min; i++){if(tz.charAt(min-1-i)==to.charAt(max-1-i)){ans[max-1-i] = '0';}else{ans[max-1-i] = '1';}}for(int i=0; i<max-min; i++){ans[i] = to.charAt(i);}}else{for(int i=0; i<min; i++){if(tz.charAt(min-1-i)==to.charAt(max-1-i)){ans[max-1-i] = '0';}else{ans[max-1-i] = '1';}}}String an = String.valueOf(ans);long a = Long.parseLong(an,2);System.out.println(a);}}}