Другие языки программирования и технологии
решите, пожалуйста, задачу на языке с с помощью циклов (for, while, do...while)
Имеются контейнеры двух видов: по 130кг и 160кг. Можно ли полностью загрузить ими грузовик грузоподъёмностью 3т.
#include <stdio.h>
#include <conio.h>
int main () {
int llc = 3000, c1 = 130, c2 = 160, max, min, temp = llc;
if (llc % c1 == 0 || llc % c2 == 0) printf("Yes!");
else {
max = c1 > c2? c1 : c2;
min = c1 + c2 - max;
while (temp > 0) {
temp -= max;
if (temp % min == 0) {
printf("Yes!");
break;
}
}
}
_getch();
return 0;
}
#include <conio.h>
int main () {
int llc = 3000, c1 = 130, c2 = 160, max, min, temp = llc;
if (llc % c1 == 0 || llc % c2 == 0) printf("Yes!");
else {
max = c1 > c2? c1 : c2;
min = c1 + c2 - max;
while (temp > 0) {
temp -= max;
if (temp % min == 0) {
printf("Yes!");
break;
}
}
}
_getch();
return 0;
}
Не надо 2 раза писать, от этого желание делать не появится!
на вот написал 2 часа придумывал что бы такое придумать: (с тебя 2 бакса ))) шучу)
вот результат работы
работа программы основана на создании списка случайных последовательностей 160 и 130 килограммовых контейнеров которая бы была ровна 3 тоннам.
результат и проверка все есть. Вообще интересно правда? :-)

вот результат работы

работа программы основана на создании списка случайных последовательностей 160 и 130 килограммовых контейнеров которая бы была ровна 3 тоннам.
результат и проверка все есть. Вообще интересно правда? :-)
правда на паскале uses crt;
var
y,x,j,jj,z,zz,n,k: integer;
Begin
clrscr;
n:=130;k:=160;x:=3000;
z:=0;
j:=x div k;
z:=x div n;
for jj:=1 to j do begin y:=0;
for zz:=1 to z do
begin
y:=k*jj+n*zz ;
if y=x then writeln ('Âàðèàíòû ',k,' - ',jj,' øò. ',n,' - ',zz,' øò. y=',y);
end;
end;
//writeln('kones');
End.
var
y,x,j,jj,z,zz,n,k: integer;
Begin
clrscr;
n:=130;k:=160;x:=3000;
z:=0;
j:=x div k;
z:=x div n;
for jj:=1 to j do begin y:=0;
for zz:=1 to z do
begin
y:=k*jj+n*zz ;
if y=x then writeln ('Âàðèàíòû ',k,' - ',jj,' øò. ',n,' - ',zz,' øò. y=',y);
end;
end;
//writeln('kones');
End.
вышу написаный метод помойму учитывает не все варианты
первое и последнее что пришло на ум
метод дуратский но для твоих цифр подойдет ( ровно как и для отмазы препаду)
int ves = 3000, c1 = 130, c2 = 160;
if (ves % c1 == 0 || ves % c2 == 0) printf("Yes!");
else {
for (int i = 1; ves >= 0; i++)
{
ves -= (c1+c2)*i
if ((ves% c1 ==0) || (vesВ==0)) printf("Yes!");
else printf("NO!");
}
if (ves ==0) printf("Yes!");
}
первое и последнее что пришло на ум
метод дуратский но для твоих цифр подойдет ( ровно как и для отмазы препаду)
int ves = 3000, c1 = 130, c2 = 160;
if (ves % c1 == 0 || ves % c2 == 0) printf("Yes!");
else {
for (int i = 1; ves >= 0; i++)
{
ves -= (c1+c2)*i
if ((ves% c1 ==0) || (vesВ==0)) printf("Yes!");
else printf("NO!");
}
if (ves ==0) printf("Yes!");
}
Похожие вопросы
- Сколько всего существует еще циклов, кроме for, while, do while ???
- РЕшите пожалуйста задачу на языке ПАСКАЛЬ:
- Необходимо решить представленные задачи на языке Pascal:
- Решите пожалуйста задачу в Паскале) Нестандартная)
- Решите, пожалуйста задачу на С++
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- Цикл for в Дельфи или Паскале
- С++, Чем отличаеться цикл for, от while?
- *.bat - Не работает set /a внутри цикла for!
- Вопрос про цикл For