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

Представление n - C++

Восстановить пароль Регистрация
 
Sekmegalife
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 11
25.12.2009, 21:41     Представление n #1
Дано натуральное n. Можно ли представить его в виде суммы трех квадратов натуральных чисел, если млжно, то указать все представления n в виде квадратов натуральных чисел.
для примера:
пользователь вводит число 5
Для него программа выводит результат:
n=0*0+1*1+2*2
n=0*0+2*2+1*1
n=1*1+0*0+2*2
n=1*1+2*2+0*0
n=2*2+0*0+1*1
n=2*2+1*1+0*0
помогите пожалста написать на С такую программу. Заранее всем спасибо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2009, 21:41     Представление n
Посмотрите здесь:

C++ Представление числа
C++ двоичное представление
C++ Представление данных
C++ Битовое представление
C++ Битовое представление
Машинное представление C++
Строковое представление C++
C++ Двоичное представление

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
26.12.2009, 11:36     Представление n #2
только в натуральные 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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
#define FALSE 0
#define TRUE 1
 
short findSummSquare(int n, int & x, int & y, int & z)
{
    if(n<0) return FALSE;
 
    for (int i=(int)sqrt((double)n); i>=0; i--)
    {
        z=i;
        for (int j=(int)sqrt((double)n-i*i); j>=0; j--)
        {
            y=j;
            x=(int)sqrt((double)n-i*i-j*j);
            if (n==(x*x+y*y+z*z)) return TRUE;
        }   // end for (int j   
    }   // end for (int i
    return FALSE;
}   // end  findSummSquare
 
int main()
{
    int n=0, remains;
    int x, y, z;
 
    while(n>=0)
    {
 
        if(!findSummSquare(n,x,y,z))        printf("ERR: %i\n",n);
        else
        {
            //printf("x: %i, y: %i, z: %i\n",x,y,z);
            printf("%i = %i*%i + %i*%i + %i*%i\n",n,x,x,y,y,z,z);
        }       
        getch();
        ++n;
    }
    getch();
    return 0;
}
Yandex
Объявления
26.12.2009, 11:36     Представление n
Ответ Создать тему
Опции темы

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