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

Дано натуральное число n > 1. Определить длину периода десятичной записи дроби 1/n. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать объект http://www.cyberforum.ru/cpp-beginners/thread322467.html
Помогите пожалуйста сделать 2 задачи. 1)Описать объект ввод "последовательности" с методами "нахождения количества отрицательных и положительных чисел","нахождение суммы" и "нахождение максимума"....
C++ Создать однопоточный линейный список и сортировать методом пузырька создать однопоточный линейный список и сортировать методом пузырька , желательно с пояснением http://www.cyberforum.ru/cpp-beginners/thread322446.html
C++ Таинственный тип void
правильно ли я освободил память? #include <iostream> using namespace std; int main(){ void * mas; mas = new int(17);
Затирание изображения. C++
Программа выводит текст из файла в графическом режиме,и осуществляет скроллинг при помощи клавиш WASD,подскажите как осуществить затирание предыдущей позиции строк,чтобы при перемещении строк...
C++ Создание игры и софта http://www.cyberforum.ru/cpp-beginners/thread322419.html
Скажите пожалуйста какие книги можете порекомендовать на с++ я хочу написать игру в шахматы для виндоус но не знаю с чего начать код то я писать начал а как реализовать к примеру доску фигурки кнопки...
C++ Сумма и разность чисел, представленных в виде bitset Доброго времени суток. Реализую блочный алгоритм шифрования, в котором необходимо наличие операций сложения и вычитания чисел разрядностью 16 бит, а так же взятие по модулю 2^16 от суммы/разности.... подробнее

Показать сообщение отдельно
S9
Волшебник
645 / 248 / 38
Регистрация: 18.12.2010
Сообщений: 541
19.06.2011, 14:00
Решение есть здесь, правда в Паскале.
Я его перевел в С++ как мог (вроде компилируется и выдает некий результат)
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
/*Период дроби равен периоду в последовательности остатков 
(докажите это; в частности, надо доказать, что он не может быть меньше). 
Кроме того, в этой последовательности все периодически повторяющиеся все члены различны, 
а предпериод имеет длину не более n. Поэтому достаточно найти (n+1)-ый член последовательности 
остатков и затем минимальное k, при котором (n+1+k)-ый член совпадает с (n+1)-ым.*/
#include <iostream.h>
 
int main(int argc, char * argv)
{
  int l = 0, r = 1;
  int c, n, k;
  cout << "Please enter n" << endl;
  cin >> n;
  //инвариант: r/n = результат отбрасывания l знаков в 1/n
  while(l != n + 1)
  {
    r = (10 * r) % n;
    l++;
  }
  c = r;
  //c = (n+1)-ый член последовательности остатков
  r = (10 * r) % n;
  k = 0;
  //r = (n+k+1)-ый член последовательности остатков
  while (r != c)
  {
    r = (10 * r) % n;
    k++;
  }
  cout << "Max period " << k << endl;
  cin.get();
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru