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

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

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

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

06.03.2010, 19:10. Просмотров 3816. Ответов 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.


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

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

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

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

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

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

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

В матрице из нулей и единиц найти квадрат заданного размера, состоящую целиком из нулей - C++
В матрице A (m, n), которая состоит из нулей и единиц, найти квадрат заданного размера (квадратную подматрицу), состоящую целиком из нулей ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
08.03.2010, 00:53     Найти, на сколько нулей оканчивается число N #31
Musik,
Цитата Сообщение от Musik Посмотреть сообщение
количество нулей надо найти на конце Факториала от N )))
Цитата Сообщение от Musik Посмотреть сообщение
Работает сейчас правильно
но больше 33 ! не считает
там -> N!= 1*2*3*...*N считает больше
C++
1
size_t fact = 1001;
, правда, без std::cin
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.03.2010, 01:28     Найти, на сколько нулей оканчивается число N #32
mirso, так не интересно если не вычислять факториал
Мой вариант
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "Factorial.h"
int main()
{
    setlocale(LC_ALL, "Russian");
    
    Factorial *factorial = new Factorial();
    int fact;
 
    std::cout<<"Введите факториал:\n> ";
    std::cin>>fact;
    
    factorial->WriteFactorial(fact);
    std::cout<<"Количество нулей:\n< "<<factorial->CountZero()<<std::endl;
    
    delete factorial;
    system("pause");
    return EXIT_SUCCESS;
}
factorial.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
class Factorial
{
public:
    void WriteFactorial(int);
    int CountZero();
protected:
private:
    void _Factorial(int);
    static const int n = 15000000;
    int mas[n];
};
Factorial.cpp
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <fstream>
#include "Factorial.h"
 
void Factorial::_Factorial(int factorial)
{
    int fact, i, zero = n - 1, index = n - 1;
    for(i = 0; i < n - 1; ++i)
        mas[i] = 0;
    mas[n - 1] = 1;
    for (fact = 2; fact <= factorial; ++fact)
    {
        while (mas[zero] == 0) --zero;
        for (i = zero; i >= index; --i)
            mas[i] *= fact;
        for (i = zero; i > index; --i)
            if (mas[i] >= 1000)
            {
                mas[i - 1] += mas[i] / 1000;
                mas[i] %= 1000;
            }
        if (mas[index] >= 1000)
        {
            mas[index - 1] += mas[index] / 1000;
            mas[index] %= 1000;
            index--;
            if (mas[index] >= 1000)
            {
                mas[index - 1] += mas[index] / 1000;
                mas[index] %= 1000;
                index--;
                if (mas[index] >= 1000)
                {
                    mas[index - 1] += mas[index] / 1000;
                    mas[index] %= 1000;
                }
            }
        } 
    }
}
 
void Factorial::WriteFactorial(int factorial)
{
    _Factorial(factorial);
    int i = 0;
    while (mas[i++] == 0);
    std::ofstream out("factorial.txt", std::ios::out);
    for (i -= 1; i < n; ++i)
    {
        if (mas[i] >= 100)
            out<<mas[i];
        else
            if (mas[i] < 10)
                out<<"00"<<mas[i];
            else
                out<<"0"<<mas[i];
    }
}
 
int Factorial::CountZero()
{
    int i = n - 1, count = 0;
    while(mas[i] == 0) --i;
    count = (n - i - 1) * 3;
 
    if(!(mas[i] % 100))
        return count + 2;
    else
        if(!(mas[i] % 10))
            return count + 1;
    return count;
}
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
08.03.2010, 01:53     Найти, на сколько нулей оканчивается число N #33
M128K145,
Цитата Сообщение от M128K145 Посмотреть сообщение
static const int n = 15000000;
+1) Нипадецки!

Цитата Сообщение от M128K145 Посмотреть сообщение
на всякий случай
И так - с избытком!
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.03.2010, 01:58     Найти, на сколько нулей оканчивается число N #34
mirso, видишь ли, проверено, что он считает до 100 000!
Дальше было лень проверять, но 100 000! = 282 * 10 ^ 456571 - это 150000 элементов массива. Мне в принципе не жалко, на всякий случай
Musik
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 23
08.03.2010, 16:11  [ТС]     Найти, на сколько нулей оканчивается число N #35
Спасибо большое))
Metax
6 / 6 / 3
Регистрация: 27.02.2010
Сообщений: 17
11.03.2010, 00:20     Найти, на сколько нулей оканчивается число N #36
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int _tmain()
{
    int c,b;
    c=b=0;
    while ( (c=getchar()) != EOF && c != '\n' && c != '\0')
    {
        if (c == 48)
            b++;
    }
    printf ("Kolvo nuley v chisle %d ",b);
    _getch();
    return 0;
}
может такую вещь можно доработать для получения нужного результата
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
11.03.2010, 01:55     Найти, на сколько нулей оканчивается число N #37
Metax, конечно можно, но суть задания не в том, чтобы посчитать количество нулей в конце файла, а вот чтобы посчитать его хотя бы в этом числе. А откуда вы его возьмете для того чтобы записать в файл?
Metax
6 / 6 / 3
Регистрация: 27.02.2010
Сообщений: 17
11.03.2010, 11:20     Найти, на сколько нулей оканчивается число N #38
теперь понял, спсб )
Liebe
...
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
11.03.2010, 16:15     Найти, на сколько нулей оканчивается число N #39
если не обязательно считать сам факториал, то можно и так
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int  main()
{
  long int n,s;
  cin>>n;
  s=n/5;
  cout<<"количество нулей     "<<s<<endl;
  
 return 0;
}
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
11.03.2010, 22:10     Найти, на сколько нулей оканчивается число N #40
liebe, спорное утверждение 2000! - 499 нулей в конце. По вашей формуле 2000/5 = 400
Liebe
...
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
11.03.2010, 23:28     Найти, на сколько нулей оканчивается число N #41
Цитата Сообщение от M128K145 Посмотреть сообщение
liebe, спорное утверждение 2000! - 499 нулей в конце. По вашей формуле 2000/5 = 400
ну я до таких чисел не дошла, чтобы в ручную проверять ...до каких дошла - совпало ))))
Metax
6 / 6 / 3
Регистрация: 27.02.2010
Сообщений: 17
12.03.2010, 00:44     Найти, на сколько нулей оканчивается число N #42
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
#include <string>
#include <iostream>
#include <conio.h>
using namespace std;
 
 
int _tmain()
{
    string n,x;
    int y,z;
    y=z=0;
 
    cout << "Vvedite chislo: ";
    getline(cin,n );
    y=n.size();
    y-=1;
    for (y; y >= 0; y--)
    {
        if(n[y]==48)
            z++;
        else
            break;
    }
 
    cout << "\nKol-vo nuley ravno: "<< z;
 
    getch();
 
}
вот ещё одна вещь, однако опять же не для числовых значений ^_^
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2010, 01:04     Найти, на сколько нулей оканчивается число N
Еще ссылки по теме:

Найти количество строк массива, не содержащих нулей и максимальное число, встречающееся более одного раза - C++
Написать программу как можно проще 1. Консольный ввод/вывод целочисленного массива размером 5*5. 2. Определение количества строк, не...

В двухмерном массиве найти строки, не содержащие нулей и максимальное число, встречающееся более одного раза - C++
Нужно сделать задание 1.Консольный ввод/вывод целочисленного массива размером 5*5 2.Определение количества строк, не содержащих ни...

В заданной матрице состоящей из нулей и единиц найти квадратную подматрицу, состоящую целиком из нулей - C++
Черный квадрат. В матрице состоящей из 0 и 1 найти квадрат заданного размера(квадратную подматрицу), состоящий целиком из нулей.

Выяснить нечетное ли число и оканчивается ли на 6. - C++
Хелп,что-то не доходит как решить задачку с помощью вайл,фор. 1.Дано натуральное число. Выяснить нечетное ли оно и оканчивается ли на 6. ...

Кольцевой список: для целочисленных элементов найти число нулей и разделить на него все положительные элементы - C++
кольцевой список.Реализовать проверку всех элементов динамической памяти и определить:для целочисленных элементов-число нулевых элементов и...


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
12.03.2010, 01:04     Найти, на сколько нулей оканчивается число N #43
Вопрос решен. Тема закрыта
Yandex
Объявления
12.03.2010, 01:04     Найти, на сколько нулей оканчивается число N
Закрытая тема Создать тему
Опции темы

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