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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.97
Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
#1

Найти, на сколько нулей оканчивается число N - C++

06.03.2010, 19:10. Просмотров 3839. Ответов 42
Метки нет (Все метки)

Вводится N. Необходимо найти, на сколько нулей оканчивается чило N!



Нашел решение этой задачи на языке паскаль
но с переводом на С++ проблемы

Надеюсь на вашу помощь )

Добавлено через 30 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a,b,c,n:longint;
begin
write('>N=');
readln(N);
a:=0;
for c:=1 to n do
begin
  b:=c;
  while b mod 5 = 0 do
    begin
      b:=b div 5;
      inc(a);
    end;
end;
write('>Result: ',a,'.');
readln;
end.


вот текст в паскале
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2010, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти, на сколько нулей оканчивается число N (C++):

На сколько нулей оканчивается факториал числа N? - C++
3.Вводится натуральное число N. На сколько нулей оканчивается число N! (N факториал)?

Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число - C++
Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число.

Вводим число n, а затем n-чисел. Сколько нулей среди n-чисел? - C++
вводим число n, а затем n-чисел. сколько нулей среди n-чисел?

Упорядочить массив по убыванию, найти число положительных/отрицательных/нулей - C++
Упорядочить массив Х(N) по убыванию, найти k1– количество положительных, k2– количество отрицательных, k3– количество нулевых элементов...

Определить, сколько слов оканчивается на заданную букву - C++
Доброго времени суток. Задан текст. Определить, сколько слов оканчивается на заданную букву.

Найти максимальное число в массиве и определить, сколько цифр числа делятся на число Z - C++
Массив intA=

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 19:27 #2
Вроде бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main() {
   int a=0,b,c,n;
   cout<<"Введите N: ";
   cin>>n;
   for (c=0;c<=n;c++) {
      b=c;
      while (b%5==0) {
         b/=5;
         a++;
      }   
   }
cout<<"Результат: "<<a<<endl;
}
1
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 19:33 #3
Spoofi забыл ретурн в меине но я вообще о другом, я не пойму что означает "на сколько нулей оканчивается число" это имеется ввиду найти количество нулей в конце цифры? например 10 один ноль
1200 два нуля так?
1
Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 19:44 #4
Цитата Сообщение от Amarted Посмотреть сообщение
Spoofi забыл ретурн в меине но я вообще о другом, я не пойму что означает "на сколько нулей оканчивается число" это имеется ввиду найти количество нулей в конце цифры? например 10 один ноль
1200 два нуля так?
Не понял, про какой ретурн Вы говорите?

По условию - да, Вы правильно поняли.
1
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 19:53 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main() {
   int a=0,b,c,n;
   cout<<"Введите N: ";
   cin>>n;
   for (c=0;c<=n;c++) {
      b=c;
      while (b%5==0) {
         b/=5;
         a++;
      }   
   }
cout<<"Результат: "<<a<<endl;
return 0; // вот про этот ретурн который пропущен у вас в коде.
}
1
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
06.03.2010, 19:53 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
небольшая поправочка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main() {
   int a=0,b,c;
   long n;
 
   cout<<"Enter N: ";
   cin>>n;
   for (c=0; c <= n; c++) {
      if (n%10 == 0){
         n/=10;
     a++;
      }
   }
   cout<<"Result: "<<a<<endl;
   return 0;
}
1
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:02 #7
и на счет замого кода, раз я правильно понял, тогда нужно использовать другой код, щас объясню;

Добавлено через 3 минуты
Всё уже объяснять нечего, Vorona уже поправила, пока я писал=)

Добавлено через 4 минуты
Хотя для повышения производительности можно и даже нужно изменить условие цикла for
for (c=0; (c <= n/10); c++) это значительно уменьшит количество итераций! и переменная b совсем не нужна...

Цитата Сообщение от Spoofi Посмотреть сообщение
Ой, действительно пропустил

Я всего-лишь там код на C++ перевел, сильно не вдавался в то, как его улучшить.
Я так и понял=)
2
Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 20:08 #8
Ой, действительно пропустил

Я всего-лишь там код на C++ перевел, сильно не вдавался в то, как его улучшить.
1
Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 20:09  [ТС] #9
у меня не выводит ((
0
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
06.03.2010, 20:12 #10
Цитата Сообщение от Amarted Посмотреть сообщение
Хотя для повышения производительности можно и даже нужно изменить условие цикла for
for (c=0; (c <= n/10); c++) это значительно уменьшит количество итераций!
мм, пробовал, нет смысла в этом..
1
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:12 #11
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
В чём именно проблема? Код должен работать.
1
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
06.03.2010, 20:13 #12
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
попробуй тот код, что я написал, он рабочий)
1
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:14 #13
Цитата Сообщение от Vorona Посмотреть сообщение
мм, пробовал, нет смысла в этом..
а ты измени немного код в этой части вот так
C++
1
2
3
4
5
6
7
8
9
10
11
   cout<<"Enter N: ";
   cin>>n;
   int iter = 1;
   for (c=0; (c <= n); c++) {
       
       cout<<iter++<<'\n';
      if (n%10 == 0){
         n/=10;
         a++;
      }
   }
и введи 100200 а затем исправь условие на for (c=0; (c <= n/10); c++) и опять введи тоже самое 100200
и очень наверное удивишься...
2
Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 20:17  [ТС] #14
Результат не выводит (
0
Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 20:17 #15
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
Код который Vorona выложила(выложил):

spoofi@EEEPC:~/Рабочий стол$ ./main
Enter N: 6000
Result: 3
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2010, 20:17
Привет! Вот еще темы с ответами:

Оканчивается ли число на 1? - C++
Помогите пожалуйста с алгоритмом, мне нужно определить, когда число оканчивается на 1 (кроме 11), т.е. 1, 21, 31, 41 и т.д.

Некоторое число оканчивается на 2 - C++
напишите 2 задачки пожалуйста 1)Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число...

найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц - C++
Нужно найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. В чем ошибка ? #include &lt;iostream&gt; #include...

Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц - C++
Здравствуйте, не могу понять в чём может быть ошибка :) Решаю олимпиадную задачу. Но система находит в тесте 5 не верный ответ) В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.03.2010, 20:17
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru