Практика программирования (Бейсик, Си, Паскаль)


Задачи,советы и ответы - часть 44


n__hi=n/10; /* Старшая цифра знаменателя */

m_lo=m % 10; /* Младшая цифра числителя */

m_hi=m/10; /* Старшая цифра числителя */

if(m % 10 == 0) continue;

/* Анализ различных сочетаний "зачеркиваемых" цифр */

i£(n lo==m lo && n_hi!=0 && fabs (t-m_hi/n_hi) <1.e-3)

printf("\n%d/%d=ld/id",m,n,m_hi,n_hi);

if(n_lo==m_hi && n_hi!=0 && fabs(t-m_lo/n_hi)<le-3)

printf ("\n%d/%d=%d/%d",m,n,m_lo,n__ni) ;

i£(n hi==m_lo ££ n__lo!=0 ££ fabs(t-m_hi/n_lo)<le-3)

printf("\n%d/%d=ld/ld",m,n,m_hi,n_lo);

if(n_hi==m_hi && n_lo!=0 && fabs(t-m_lo/n_lo)<le-3)

printf("\n%d/%d=%d/%d",m,n,m_lo,n_lo); }

getch{); }

Программа 2_25.pas

program drobi;

{Генерация неправильно сокращаемых дробей}

uses crt;

var

n, m, n_lo, n__hi, m_lo, m_hi: byte ; t:real; begin

clrscr;

{ Двойной цикл по перебору дробей от 10/11 до 98/99 } for n:=ll to 99 do for m:=10 to n-1 do begin

t:=m/n; { Настоящее значение дроби }

n_lo:=n mod 10; { Младшая цифра знаменателя }

n_hi:=n div 10; { Старшая цифра знаменателя }

m_lo:=m mod 10; { Младшая цифра числителя }

m_hi:=m div 10; { Старшая цифра числителя }

if m_lo=0 then continue;

{ Анализ различных сочетаний "зачеркиваемых" цифр }

if (n_lo=m_lo) and (n_hi<>0) and (abs(t-m_hi/n_hi)<le-3) then

writeln(m:3, '/',n:2, ' = ',m_hi:l, '/',n_hi) ;

if (n_lo=m_hi) and (n_hi<>0) and (abs(t-m_lo/n_hi)<le-3) then

writeln(m:3,'/',n:2,'=',m_1о:1,'/',njii);

if (n_hi=m_lo) and (n_lo<>0) and (abs(t-m_hi/n_lo)<le-3) then

writeln(m:3,'/',n:2,'=',m_hi:l,'/',n_lo);

if (n_hi=m_hi) and (n__lo<>0) and (abs(t-m_lo/n_lo)<le-3) then

writeln(m:3,'/',n:2,'=',m_lo:1,'/',n_lo); end; readln;

end.

Задание 2.26. Разложение натурального числа на сумму квадратов

Утверждение, принадлежащее Лагранжу, гласит, что любое натуральное число N можно представить в виде суммы не более чем четырех квадратов целых чисел (N = а2 + ь2 + с2 + d2). Составить программу, которая вводит длинное целое число N и находит хотя бы одно такое разложение. О неединственности результата свидетельствует пример: 4 = 22 = 12 + 12 + 12 + 12. Кроме того, существует довольно много прямоугольных треугольников с целочисленными сторонами, которые позволяют заменить сумму квадратов катетов квадратом гипотенузы, а сумму четырех квадратов, следовательно, -суммой трех.




- Начало -  - Назад -  - Вперед -