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

Обсуждение задачи 1001. Обратный корень

Whats wrong with this code? Please help
Послано Naman Sharma 31 янв 2020 21:07
#include<iostream>
using namespace std;
float sqrt(long long2 n,int p)
{
    int start = 0;
    int end = n;
    float ans;
    int mid;
    while(start <= end)
    {
        mid = (start+end)/2;
        if(mid*mid < n)
            start = mid + 1;
        else if(mid*mid > n)
            end = mid - 1;
        else
        {
            ans = mid;
            break;
        }
    }
    float increment = 0.1;
    for(int i = 0; i < p;i++)
    {
        while(ans * ans <= n)
        {
            ans += increment;
        }
        ans -= increment;
        increment /= 10;
    }
    return ans;
}
int main()
{
    long long int n;
    while(cin >> n)
    {
        cout << sqrt(n,4) << endl;
    }
}
Re: Whats wrong with this code? Please help
Послано ToadMonster 7 фев 2020 13:12
1) Please read task, especially "from the last one till the first" carefully. Look at the example.
2) Your sqrt function lies. https://ideone.com/wcJVz0