Форум программистов, компьютерный форум CyberForum.ru

Задача на С++ - C++

Восстановить пароль Регистрация
 
ElShikari
 Аватар для ElShikari
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 35
06.02.2014, 21:13     Задача на С++ #1
Условие задачи
Вася и Петя учатся в школе в одном классе. Недавно Петя поведал Васе о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь Вася может с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5 достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625. Напишите программу, возводящую число, оканчивающееся на 5, в квадрат для того, чтобы Вася смог проверить свои навыки.
Входные данные
В единственной строке входного файла INPUT.TXT записано одно натуральное число А, оканчивающееся на цифру 5, не превышающее 4*105.
Выходные данные
В выходной файл OUTPUT.TXT выведите одно натуральное число - A2 без лидирующих нулей.
Примеры
INPUT.TXTOUTPUT.TXT
5 25
75 5625
4255 18105025

В чем проблема?
Миниатюры
Задача на С++  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
06.02.2014, 21:16     Задача на С++ #2
ElShikari, Судя по всему вы этот код копировали откуда то. Не правильные символы >> и <<
скопируй это
C++
1
2
3
int a;
cin>>a;
cpit<<pow(a,2);
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
06.02.2014, 21:18     Задача на С++ #3
ElShikari, pow первый аргумент принимает с плавающей запятой.
Можете сделать приведение типов:
C++
1
pow((double)a, 2);
ElShikari
 Аватар для ElShikari
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 35
06.02.2014, 21:27  [ТС]     Задача на С++ #4
Выдает ошибку:
Миниатюры
Задача на С++  
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
06.02.2014, 21:30     Задача на С++ #5
ElShikari,
Цитата Сообщение от cooller_94 Посмотреть сообщение
cpit<<pow(a,2);
C++
1
cout<<pow((double)a, 2);
а вообще, Ваше решение неверно. у Вас в задании написан метод которым необходимо возводить в квадрат числа оканчивающиеся на 5.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream.h>
int main()
{
    int n=0;
    ifstream inputFile ("input.txt");
    ofstream outputFile ("output.txt");
    inputFile>>n;       
    if (n>4*105) outputFile<<"number in input more than 4*105";
    else 
    {
        n = (n-5)/10;
        n = ((n*(n+1))*100)+25;
        outputFile<<n;
    }
    inputFile.close();
    outputFile.close();
    return 0;
}
EragonJKee
 Аватар для EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
06.02.2014, 21:32     Задача на С++ #6
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <cmath>
int main() {
    int a;
    std::cin >> a;
    std::cout << pow((double)a,2) << '\n';
    return 0;
}
Это ваш исправленный код.
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
06.02.2014, 21:36     Задача на С++ #7
а что за cpit такой???
я знаю cout console output "вывод на консоль"
C++
1
cout<<pow((double)a, 2);
Добавлено через 2 минуты
Цитата Сообщение от Черный ворон Посмотреть сообщение
(n>4*105)
там скорее всего имелось в виду 4*105 то бишь 400 000
ElShikari
 Аватар для ElShikari
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 35
06.02.2014, 21:37  [ТС]     Задача на С++ #8
Помогло. Всем большое спасибо.
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
06.02.2014, 21:46     Задача на С++ #9
Цитата Сообщение от Черный ворон Посмотреть сообщение
n = (n-5)/10;
бесполезное вычитание пятерка и так потеряется
посему можно так

C++
1
2
n /= 10;
n = ((n*(n+1))*100)+25;
или так
C++
1
n = (((n/10)*(n/10+1))*100)+25;
а можно так
C++
1
2
n-=5;
n=n*(n+10)+25
в общем вариантов много

Добавлено через 5 минут
а вот откуда ноги растут у этого утверждения
(10*x+5)(10*x+5)=100*x2+100*x+25=100*x*(x+1)+25
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
06.02.2014, 21:47     Задача на С++ #10
Цитата Сообщение от ValeryS Посмотреть сообщение
или так
Код C++
1
n = (((n/10)*(n/10+1))*100)+25;
Цитата Сообщение от ValeryS Посмотреть сообщение
бесполезное
деление на 10 дважды, если Вы уж так радеете за бесполезность некоторых действий.

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
а что за cpit такой???
я знаю cout console output "вывод на консоль"
думаю недоученная слепая печать, клавиши соседние справа для обоих букв. вывод - еще неустойчива моторика движений и невнимательность при просмотре только что набранного

ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
06.02.2014, 21:50     Задача на С++ #11
Цитата Сообщение от Черный ворон Посмотреть сообщение
деление на 10 дважды,
зато запись в одну строку
ну возьми третий вариант вообще без делений
в первом одно деление

Не по теме:

Цитата Сообщение от Черный ворон Посмотреть сообщение
думаю недоученная слепая печать,
а мне кажется скопировал из какой то отсканенной книжки

Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
06.02.2014, 21:59     Задача на С++ #12
Цитата Сообщение от ValeryS Посмотреть сообщение
третий вариант вообще без делений
думаю он самый оптимальный и будет.
Yandex
Объявления
06.02.2014, 21:59     Задача на С++
Ответ Создать тему
Опции темы

Текущее время: 23:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru