Другие языки программирования и технологии

Две задачи. Программу в си написать

1. Имеются контейнеры двух видов: по 130кг и 160кг. Можно ли полностью загрузить ими грузовик грузоподъёмностью 3т.

2. Число a возводят в квадрат и результат увеличивают на 1. Полученное число снова возводят в квадрат и увеличивают на 1. Этот процесс продолжается до тех пор, пока не будет получено число X, большее миллиона. Найти число X.
#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 <stdio.h>
#include <conio.h>
#define LIM 1000000
int main () {
    unsigned a;
    printf("a?.. "); scanf_s("%u", &a);
    while (a < LIM) {
        a *= 2;
        ++a;
    }
    printf("X = %u\n", a);
    _getch();
    return 0;
}
АЭ
Александр Эм
74 737
Лучший ответ
очень легко
Лень писать, могу подкинуть идею:
Создать массив с 2мя ячейками: в первой 130, во второй 160;
Сделать цикл пока x=3000 (3 тонны) >= 0
И в цикле отнимать от 3000 ячейку массива a[rand(1,2)]. Короче чтобы рандомом выбирало из массива 130 или 160. И счетчиками подсчитывать сколько каких значений выпало. Ну и для остатка переменную.
А чтобы найти оптимальный вариант я хз.

Для второй задачи:
цикл сделать пока определенное число суматор <= 1 000 000;
в цикле проделывать нужные операторы с числом А, и просто присваивать его счетчику.
конечное число - ответ.