Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№3 вар.№2Юля_и_Ильдар_Артур
.docУфимский Государственный Авиационный Технический Университет
Кафедра АСУ
Отчёт
по лабораторной работе №3
по дисциплине ”Программирование на ЯВУ”
вариант №2
Выполнил: студент группы АСОИ-136
Гильмутдинов А. Проверил: доцент кафедры АПрИС
Фёдорова Н.И.
Уфа 2007
Тема: Обработка целых данных
Цель работы: Знакомство и получение навыков обработки целых данных
в языке С++.
Вариант №2.
Задание:
Определить, можно ли представить заданное натуральное число N как сумму кубов каких-нибудь трех натуральных чисел n, m ,k(т.е. N=n3+m3+k3)
Решение:
Способом последовательного перебора (
при n=1, m=1, k=от 1 до N;
n=1, m=2, k=от 1 до N;
…………………………
…………………………
n=1, m=N, k=от 1 до N;
` …………………………
…………………………
n=N, m=N, k=от 1 до N )
каждый раз сравнивать равен ли n3+m3+k3 числу N.
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{long N,n,m,k;
long fl;
clrscr();
cout<<"vvedite peremennyu N\n";
cout<<"N=";
cin>>N;
fl=0;
for(n=1;n<N;n++)
for(m=1;m<N;m++)
for(k=1;k<N;k++)
if((pow(n,3)+pow(m,3)+pow(k,3))==N)
{cout<<" "<<n<<"+"<<m<<"+"<<k<<"(kajdaia v kybe)="<<pow(n,3)+pow(m,3)+pow(k,3)<<endl<<endl;
fl=1;
}
if(fl==0)
cout<<" nelzia predstavit'";
else
cout<<endl<<" bolshe variantov net"<<endl;
getch();
} Проверка:
N=36; Результат: 36=13+23+33 и его вариации;
N=405; Результат: 405=43+53+63 и его вариации.