ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1407. Раз-два, раз-два

To Admins
Послано Ibragim Atadjanov (Tashkent U of IT) 24 окт 2010 15:19
something wrong with the 1st test or tests
Following prog give me ans for all n (1..100)
but at first test it gave me TL

import java.math.BigInteger;
import java.util.Scanner;

public class Timus1407 {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        String s = "2";
        BigInteger two = new BigInteger("2");
        for (int i = 2; i <= n; i++) {
            BigInteger bigInteger = two.pow(i);
            String tmp = "1" + s;
            if(new BigInteger(tmp).mod(bigInteger) == BigInteger.ZERO){
                s = tmp;
            }
            else{
                s = "2" + s;
                if(new BigInteger(s).mod(bigInteger) != BigInteger.ZERO){
                    for(;;){}
                }
            }
        }
        System.out.print(s);
    }
}
Re: To Admins
Послано Sergey Lazarev (MSU Tashkent) 24 окт 2010 18:31
Strange... On my computer it gives nothing except infinite running.
You shouldn't compare BigInteger with "==". Use "compareTo" method.
thanks stupid mistake
Послано Ibragim Atadjanov (Tashkent U of IT) 25 окт 2010 12:51
Strange but it is not tl in my computer. Its working still.