Вопрос № 166453: Здравствуйте. Помогите плиз с решением задачи: нужно найти число,такое что если его умножить на 4 цифры числа будут в обратном порядке, например, клоп+клоп+клоп+клоп=полк. Вот решения программы, не могу найти ошибку помогите плиз #include <cstd...
Вопрос № 166454: строки 1. Дана символьная строка. Подсчитать количество букв k в последнем ее слове. 2. В записке слова зашифрованы — каждое из них записано наоборот.
Расшифровать сообщение. структуры 1. Дан файл Assort, содер...
Вопрос № 166.453
Здравствуйте. Помогите плиз с решением задачи: нужно найти число,такое что если его умножить на 4 цифры числа будут в обратном порядке, например, клоп+клоп+клоп+клоп=полк. Вот решения программы, не могу найти ошибку помогите плиз #include <cstdlib> #include <iostream> #include <conio.h> using namespace std;
Отвечает: Терсков Сергей
Здравствуйте, Иванов,Максим,Сергеевич! Ошибка - это практически весь код. Все циклы работаю вхолостую, т.к. нет ни одного оператора в теле цикла. Подобные операторы (k!=l;) вообще ничего не дают. Предложу достаточно простое решение с использованием строк. Вот его код:
// Тип данных для наших чисел typedef unsigned int datatype;
//
Максимальное значение которое мы будем проверять равно const datatype maxNumber=numeric_limits<datatype>::max()/4;
// Осуществляет проверку числа согласно условию задачи bool check(register datatype num) { register datatype tmp=num,reverseNum=0; // Перевернем число так, чтоб в reverseNum было число записанное наоборот while(tmp) { unsigned int digit=tmp%10; tmp/=10; reverseNum=reverseNum*10+digit; } return num*4==reverseNum; }
int main() { setlocale(LC_ALL,"russian_russia"); // Счетчик найденных чисел unsigned int count=0; // Подсчитаем время выполнения clock_t stime=clock(); // Будем рассматривать только такие числа для которых количество цифр в числе и в числе*4 одинаково // это условие истинно для диапазонов [0..2.5),[10..25),[100..250) и т.д. // Это сократит количество вариантов перебора в 4 раза for(register datatype num=1,low=1;num<maxNumber;low*=10) { //
high=low*2.5 с округлением до ближайшего большего целого числа datatype high=(low<<1)+(low>>1)+(low&1); if(high>maxNumber)high=maxNumber; // Перебор чисел из диапазона [low..high) for(num=low;num<high;++num) { // Проверяем число и выводим результат if(check(num)) { cout<<++count<<") "<<"4*"<<num<<"="<<4*num
<<endl; } } } clock_t etime=clock(); double runTime=(etime-stime)/CLOCKS_PER_SEC; cout<<"Найдено "<<count<<" чисел"<<endl; cout<<"Время выполнения:"<<fixed<<setprecision(2)<<runTime<<"(сек)"<<endl; system("PAUSE"); return 0; }
Ответ отправил: Micren (статус: Практикант)
Ответ отправлен: 05.05.2009, 14:01
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 248666 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 166.454
строки
1. Дана символьная строка. Подсчитать количество букв k в последнем ее слове.
2. В записке слова зашифрованы — каждое из них записано наоборот. Расшифровать сообщение.
структуры
1. Дан файл Assort, содержащий сведения об игрушках: указывается назва¬ние игрушки ее стоимость в рублях и возрастные границы (например, игрушка может преднаоначаться для детей от двух до пяти пет). Получить название самой дорогой игрушки, подходящей детям двух-трех лет.
2. В таблице
хранятся следующие данные об учениках: фамилия, имя, от¬чество, рост, масса. Вычислить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см?
функции
1. Сравнить площади колец, внутренние радиусы которых равны г1, r2, а внешний — заданному числу R (R > r1 и R>r2).
2. Найти (в градусах, минутах и секундах)
все угла треугольника, вершины которого заданы координатами (x1, y1), (x2, y2), (x3, y3).
файлы
1. Дал файл, содержащий текст, включающий русские и английские слова. Подсчитать, каких букв в тексте больше — русских или латинских.
2. Имеется внешний текстовый файл. Напечатать первую из самых коротких его строк.
двумерные масивы
1. Задана квадратная матрица. Переставить строку с максимальным элемен¬том на главной диагонали со строкой с заданным номером k.
Приложение:
Отправлен: 04.05.2009, 20:31
Вопрос задал: aleks1988 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Hromovnik046
Здравствуйте, aleks1988! №1. Строки: "Дана символьная строка. Подсчитать количество букв k в последнем ее слове."