Программирование на 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<<"введите переменную 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="<<n<<"^3+"<<m<<"^3+"<<k<<"^3="<<pow(n,3)+pow(m,3)+pow(k,3)<<endl;
fl=1;]
}
if(fl==0)
cout<<" нельзя представить";
else
cout<<endl<<" больше вариантов нет"<<endl<<" конец операции";
getch();
}
Проверка:
N=36; Результат: 36=13+23+33 и его вариации;
N=405; Результат: 405=43+53+63 и его вариации.