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

Циклические преобразования целых чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из одномерного массива записать в двумерный только положительные элементы http://www.cyberforum.ru/cpp-beginners/thread1127264.html
Задача в том, что нужно из одномерного записывать в двумерный только положительные элементы , если встречается отрицательный или ноль то записывать в другую строку, все работало , но преподаватель...
C++ Вывести данные из файла в виде таблицы Помогите пожалуйста вывести данные из файла в виде таблице. Ввод сделал а вывод не получается. #include <iostream> #include <conio.h> #include <fstream> #include <string> using namespace... http://www.cyberforum.ru/cpp-beginners/thread1127259.html
C++ Пузырьковая сортировка от первого шага к последнему
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; void sort_bubble(int* a, int n){ int s = 0; for (int i = 0; i < n; i++){ for (int j = n - 1; j > i; j--){
Массив указателей. Найти отличие между двумя конструкциями C++
Привет! Возник вопрос в чем разница между char* arr и char arr не одно и тоже ли это? почему например когда я пишется char* Arr={"laborer", "secretary", "manager", "accountant" , ...
C++ Исправить ошибки по созданию двухмерного массива http://www.cyberforum.ru/cpp-beginners/thread1127231.html
/******************* *Файл: lab 5_2 * *Лаб. работа: 5 * *Задача:10 * *Автор: Ермаков * *Группа:432 * ********************/ #include <windows.h> #include <stdio.h>
C++ Функции библиотеки для работы со строками и символами С помощью текстового редактора Блокнот создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки не превышает 70 символов). Имя файла должно иметь расширение txt.... подробнее

Показать сообщение отдельно
Kerke
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 7

Циклические преобразования целых чисел - C++

23.03.2014, 13:27. Просмотров 278. Ответов 0
Метки (Все метки)

Натуральное число преобразовывается по правилу: каждая его цифра возводится в квадрат, затем эти квадраты складываются. Полученное число преобразовывается таким же образом. Указанный процесс может продолжаться бесконечно, может остановиться на каком-то числе (у которого сумма квадратов его цифр равна самому числу) , либо может образоваться цикл из нескольких повторяющихся элементов. Исследовать поведение всех трёхзначных чисел,преобразующихся по этому правилу, и выявить закономерности.

Правильно или нет?

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int razdelenie( int A)
{
    int a,b,c,g;
    a=A/100;
    b=A/10-a*10;
    c=A-a*100-b*10;
    
    g=a*a+b*b+c*c;
 
    return g;
}
int issledovanie(int A)
{
    int pr[100];
    int i,j,p=0,c=0,n=0;
    int povtor,nachinai,cycl,czerez;
 
    
    pr[1]=razdelenie(A);
    for (i=2; i<99; i++)
    
 
    {pr[i]=razdelenie(pr[i-1]);
    }
    
    
    for (i=10; i>0;i--)
    {for (j=10; j>0; j--)
    
    {if ((pr[i]==pr[i+1])&&(pr[j]==pr[j+1]))
    {povtor=pr[i]; nachinai=i;p=p+1;};};}
    
    for (i=10; i>0;i--)
    {for (j=10; j>0; j--)
    {if ((pr[i]==pr[i+j])&&(j>2)&&(pr[i]!=pr[i+1])&&(pr[j]!=pr[j+1]))
    {cycl=pr[i];czerez=j;c=c+1;};};
 
    
    
    
 
    };
    if (p>0)
    {cout<<A<<" povtor "<< povtor  <<" nachinai "<<nachinai<<"  "<<endl;
    A=povtor;}
 
       
      
       
    if ((c>0)&&(cycl>0))
    {cout<<A<<" cycl "<<cycl<<" czerez  "<<czerez<<"  "<<endl;
    A=cycl;}
    if ((c==0)&&(p==0))
    {cout <<A<<" nic "<<endl;
    A=0;}
 
 
    
return A;
}
 
void main(void)
{
    int A;
FILE*myfile;
myfile=fopen("1.txt","wt");
 
 
FILE*myfile2;
myfile2=fopen("cycl.txt","wt");
FILE*myfile3;
myfile3=fopen("nic.txt","wt");
for (int k=100; k<1001; k++)
{A=issledovanie(k);
{if (A==1)
{fprintf(myfile,"%d\n",k);};};
 
{if ((A==16)||(A==89)||(A==58)||(A==37)||(A==145)||(A==42)||(A==4))
{fprintf(myfile2,"%d\n",k);};};
{if (issledovanie(k)==0)
{fprintf(myfile3,"%d\n",k);};};
 
};
fclose(myfile);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru