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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.97
Musik
 Аватар для Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 19:10     Найти, на сколько нулей оканчивается число N #1
Вводится 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.


вот текст в паскале
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2010, 19:10     Найти, на сколько нулей оканчивается число N
Посмотрите здесь:

C++ Оканчивается ли число на 1?
C++ Некоторое число оканчивается на 2
C++ Определить, сколько слов оканчивается на заданную букву
В матрице из нулей и единиц найти квадрат заданного размера, состоящую целиком из нулей C++
C++ В двухмерном массиве найти строки, не содержащие нулей и максимальное число, встречающееся более одного раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spoofi
 Аватар для Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 19:27     Найти, на сколько нулей оканчивается число N #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;
}
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 19:33     Найти, на сколько нулей оканчивается число N #3
Spoofi забыл ретурн в меине но я вообще о другом, я не пойму что означает "на сколько нулей оканчивается число" это имеется ввиду найти количество нулей в конце цифры? например 10 один ноль
1200 два нуля так?
Spoofi
 Аватар для Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 19:44     Найти, на сколько нулей оканчивается число N #4
Цитата Сообщение от Amarted Посмотреть сообщение
Spoofi забыл ретурн в меине но я вообще о другом, я не пойму что означает "на сколько нулей оканчивается число" это имеется ввиду найти количество нулей в конце цифры? например 10 один ноль
1200 два нуля так?
Не понял, про какой ретурн Вы говорите?

По условию - да, Вы правильно поняли.
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 19:53     Найти, на сколько нулей оканчивается число N #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; // вот про этот ретурн который пропущен у вас в коде.
}
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
06.03.2010, 19:53     Найти, на сколько нулей оканчивается число N #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;
}
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:02     Найти, на сколько нулей оканчивается число N #7
и на счет замого кода, раз я правильно понял, тогда нужно использовать другой код, щас объясню;

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

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

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

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

Я всего-лишь там код на C++ перевел, сильно не вдавался в то, как его улучшить.
Musik
 Аватар для Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 20:09  [ТС]     Найти, на сколько нулей оканчивается число N #9
у меня не выводит ((
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
06.03.2010, 20:12     Найти, на сколько нулей оканчивается число N #10
Цитата Сообщение от Amarted Посмотреть сообщение
Хотя для повышения производительности можно и даже нужно изменить условие цикла for
for (c=0; (c <= n/10); c++) это значительно уменьшит количество итераций!
мм, пробовал, нет смысла в этом..
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:12     Найти, на сколько нулей оканчивается число N #11
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
В чём именно проблема? Код должен работать.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
06.03.2010, 20:13     Найти, на сколько нулей оканчивается число N #12
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
попробуй тот код, что я написал, он рабочий)
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:14     Найти, на сколько нулей оканчивается число N #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
и очень наверное удивишься...
Musik
 Аватар для Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 20:17  [ТС]     Найти, на сколько нулей оканчивается число N #14
Результат не выводит (
Spoofi
 Аватар для Spoofi
8 / 8 / 1
Регистрация: 25.12.2009
Сообщений: 18
06.03.2010, 20:17     Найти, на сколько нулей оканчивается число N #15
Цитата Сообщение от Musik Посмотреть сообщение
у меня не выводит ((
Код который Vorona выложила(выложил):

spoofi@EEEPC:~/Рабочий стол$ ./main
Enter N: 6000
Result: 3
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 20:51     Найти, на сколько нулей оканчивается число N #16
Цитата Сообщение от Musik Посмотреть сообщение
Результат не выводит (
подключи в код #include <conio.h>

и напиши перед return 0, getch();
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
06.03.2010, 21:13     Найти, на сколько нулей оканчивается число N #17
точно, но скорее #include <conio> или #include <cconio> не знаю как в новых компиляторах этот заголовочный файл описывается при подключении
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
06.03.2010, 21:29     Найти, на сколько нулей оканчивается число N #18
Цитата Сообщение от Vorona Посмотреть сообщение
точно, но скорее #include <conio> или #include <cconio> не знаю как в новых компиляторах этот заголовочный файл описывается при подключении
Да в новых тоже самое на сколько я знаю, хотя даже можно избежать включения лишнего файла, есть такая функция getchar(); она и без #include <conio> работает;
Ну если всётакие компилятор выдаст ошибку при вызове getchar();( хотя по идее не должно ) тогда уже надо использовадь директиву #include <conio> и функцию getch();
Musik
 Аватар для Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
06.03.2010, 21:57  [ТС]     Найти, на сколько нулей оканчивается число N #19
Добавлено через 3 минуты
ахах блин так и думал что словами писать надо >_<
количество нулей надо найти на конце Факториала от N ))) в том случае знак ! не являлся интонацией
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2010, 22:35     Найти, на сколько нулей оканчивается число N
Еще ссылки по теме:

C++ Вводим число n, а затем n-чисел. Сколько нулей среди n-чисел?
C++ На сколько нулей оканчивается факториал числа N?
Найти количество строк массива, не содержащих нулей и максимальное число, встречающееся более одного раза C++

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

Или воспользуйтесь поиском по форуму:
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
06.03.2010, 22:35     Найти, на сколько нулей оканчивается число N #20
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <conio>
using namespace std;
unsigned long fact(unsigned long);
 
int main() {
    clrscr();
    int a = 0, c;
    unsigned long n, tmp;
 
    cout<<"Enter N: ";
    cin>>n;
 
    tmp = fact(n);
        cout<<"Factorial of "<<n<<'='<<fact(n)<<endl;
    for (c = 0; (c <= tmp/10); c++) {
        if (tmp%10 == 0){
            tmp/=10;
            a++;
        }
    }
    cout<<"Result: "<<a<<endl;
    getch();
    return 0;
}
 
unsigned long fact(unsigned long n)
{
    if(n <= 1)
        return 1;
    return n * fact(n - 1);
}
Yandex
Объявления
06.03.2010, 22:35     Найти, на сколько нулей оканчивается число N
Закрытая тема Создать тему
Опции темы

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