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

Практика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с текстом http://www.cyberforum.ru/cpp-beginners/thread46055.html
Задача C++: Даны натуральное число n, символы s1 ...,sn.. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. а)...
C++ Выдает ошибку в строке MyErrorExit("SetConsoleMode"); MyErrorExit: не найден идентификатор Тренируюсь в консольных приложениях, видел много примеров где используется MyErrorExit("XXXXXXXXX"); У меня при использовании этой строчки выдает ошибку MyErrorExit: не найден... http://www.cyberforum.ru/cpp-beginners/thread46014.html
C++ Графический режим
Помогите пожалуйста хочу научится программировать в графическом режиме я использую Microsoft Visual Studio 2008 напишите пожалуйста программку типа "Привет мир" с коментариями
C++ Выбор компилятора по следующим критериям
Добрый день. Прошу помочь с выбором компилятора по следующим критериям (сам не знаю что выбрать): 1. Необходимо создавать просты приложения для среды Windows, с главным требованием: время отклика...
C++ Класс с полем типа LPDIRECT3DDEVICE9 http://www.cyberforum.ru/cpp-beginners/thread45953.html
Можно ли создать класс с полем типа LPDIRECT3DDEVICE9? Если да - то как! Добавлено через 28 минут 19 секунд Сам разобрался просто ошибка была!
C++ Класс с полем типа map Привет, можно ли сделать класс с полем типа map<int,int>? У меня это сделать не получается - подскажите как! подробнее

Показать сообщение отдельно
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
05.08.2009, 22:27
А как перебирать x и y ? от 1 до sqrt(n) и обратно c sqrt(n) до 1 ?
Нафига обратно-то ?
пример прогона x и y , при sqrt(n)=3
Пример у тебя неправильный

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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
 
int main( void ) {
 
int n,x,y,z;
int sn, z1, z2;
 
n= 29;
sn= (int)sqrt( n );
for ( x= 1; x<=sn; x++ ) {
    z1= n-x*x;
    for ( y= x; y<=sn; y++ ) {
        z2= z1-y*y;
        if ( z2<=0 ) { break; }
        z= (int)sqrt( z2 );
        if ( z<y ) { break; }
        if ( z*z != z2 ) { continue; }
        printf( "x=%d y=%d z=%d\n", x, y, z );
    }
}
 
return 0;
 
} /* main() */
Добавлено через 21 минуту 33 секунды
Ха!

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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
 
void scan_3sqr( int n );
 
 
int main( void ) {
 
int n1, n2, n;
 
 
n1= 1;
n2= 10000;
for ( n= n1; n<=n2; n++ ) {
    printf( "n=%d\n", n );
    scan_3sqr( n );
    printf ( "================\n" );
}
return 0;
 
} /* main() */
 
 
void scan_3sqr( int n ) {
 
int x,y,z;
int sn, z1, z2;
int count= 0;
 
 
sn= (int)sqrt( n );
for ( x= 1; x<=sn; x++ ) {
    z1= n-x*x;
    for ( y= x; y<=sn; y++ ) {
        z2= z1-y*y;
        if ( z2<=0 ) { break; }
        z= (int)sqrt( z2 );
        if ( z<y ) { break; }
        if ( z*z != z2 ) { continue; }
        count++;
        printf( "x=%-3d y=%-3d z=%-3d\n", x, y, z );
    }
}
printf( "count=%d\n", count );
 
} /* scan_3sqr() */
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru