Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
#1

На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? - C++

21.09.2010, 12:52. Просмотров 1247. Ответов 11
Метки нет (Все метки)

На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются в X раз?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2010, 12:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? (C++):

Через сколько дней уровень загрязнения воды отходами уменьшится в N раз, если каждый день он уменьшается на P%
Всем привет. В общем нужна помощь в решении задачи. Нужно на завтра, буду...

Сколько времени потребуется агенту для вскрытия сейфа, если на наборе одного числа он тратит t секунд
Чтобы открыть секретный сейф, агент 007 должен в возрастающем порядке...

Определить, на сколько дней хватит подкормки для животноводческой фермы?
Поле,отведенное для зеленой подкормки скота,имеет форму...

Нормальная сборка? На сколько хватит? Какую видеокарту взять до 10000 руб.
Корпус- Thermaltake V5 Black Edition VL70001W2Z Black Процессор - Intel Core...

Определите, сколько проживет таракан, если после 12 дней в одной и тоже квартире его находят и убивают
Таракан пробегает из одной квартиры в квартиру с вероятностью 20% в день(для...

Создайте приложения для расчета дней до стипендии, если студент её получает 1 числа каждого месяца
1. Создайте приложения для расчета дней до стипендии, если студент её получает...

11
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
21.09.2010, 13:04 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
 
    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
    printf("Enough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
0
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
21.09.2010, 13:43  [ТС] #3
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
 
    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
    printf("Enough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
а можно было осуществить с использованием циклов for и while осуществить это решение?
0
LineStown
66 / 66 / 6
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
21.09.2010, 14:50 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    double s,n,x;
    int c=0;
    cout << "Введите стипендию: ";
    cin >> s;
    cout << "Введите ежедневную сумму затрат: ";
    cin >> n;
    cout << "Введите множитель затрат: ";
    cin >> x;
    while(s>=n)
    {
        c++;
        s-=n;
        n*=x;
    }
    cout << "Стипендии хватит на : " << c << " дней\nОстанется: " << s << endl;
    return EXIT_SUCCESS;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
21.09.2010, 17:00 #5
Цитата Сообщение от shyrik2014 Посмотреть сообщение
а можно было осуществить с использованием циклов for и while осуществить это решение?
да хоть
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
/*
    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
*/
    days = 0;
loop:
    if ( s - n >= 0.0 ) {
        days = days + 1;
        s = s - n;
        n = n * x;
        goto loop;
    }
 
    printf("Enough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
0
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 00:49  [ТС] #6
Цитата Сообщение от shyrik2014 Посмотреть сообщение
а можно было осуществить с использованием циклов for и while осуществить это решение?
Цитата Сообщение от easybudda Посмотреть сообщение
да хоть
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
/*
    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
*/
    days = 0;
loop:
    if ( s - n >= 0.0 ) {
        days = days + 1;
        s = s - n;
        n = n * x;
        goto loop;
    }
 
    printf("Enough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
с циклом for ввожу стипендию в 150000, затраты каждый день 5000 , увеличение в 2 раза прописываю, как получается что её хватает на 5 дней? а с циклом while пишет что хватает на 4 дня и остаётся 75000
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
24.09.2010, 01:39 #7
Цитата Сообщение от shyrik2014 Посмотреть сообщение
с циклом for ввожу стипендию в 150000, затраты каждый день 5000 , увеличение в 2 раза прописываю, как получается что её хватает на 5 дней? а с циклом while пишет что хватает на 4 дня и остаётся 75000
Не знаю, что Вы там как делаете, вот вывод понагляднее сделал - те же 4 дня и 75000 в остатке
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
 
    printf("\nDay #        Spent      Remains\n----------------------------------------\n");
    for ( days = 0; s - n >= 0; ++days, n *= x ){
        s -= n;
        printf("%5d   %10.2f   %10.2f\n", days + 1, n, s);
    }
        
    printf("\n----------------------------------------\nEnough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
просто из любопытства - а где это такие стипендии?
2
mrMRak
38 / 38 / 10
Регистрация: 02.06.2010
Сообщений: 105
24.09.2010, 01:47 #8
Цитата Сообщение от easybudda Посмотреть сообщение
просто из любопытства - а где это такие стипендии?

Не по теме:

это в копейках ;)

0
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 12:06  [ТС] #9
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
 
    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
    printf("Enough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}

Эта программа даёт следующий результат:



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
int main()
{
double s,n,x;
int c=0;
cout <<"S=";
cin>>s;
cout<<"N=";
cin>>n;
cout<<"x=";
cin>>x;
while (s>=n)
{
c++;
s-=n;
n*=x;
}
cout<<"Stipendii xvatit na:"<<c<<"dney\nOstaetsya:"<<s<<endl;
return 0;
}
Эта программа даёт этот результат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main(void){
    double s, n, x;
    int days;
 
    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);
 
    printf("\nDay #        Spent      Remains\n----------------------------------------\n");
    for ( days = 0; s - n >= 0; ++days, n *= x ){
        s -= n;
        printf("%5d   %10.2f   %10.2f\n", days + 1, n, s);
    }
        
    printf("\n----------------------------------------\nEnough for %d days, and %.2f money left.\n", days, s);
 
    return 0;
}
А последняя даёт 3-тий результат:
3 программы совершенно по иному работают, это связано что они написаны с разными циклами или в чём дело?
0
Миниатюры
На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?   На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?   На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?  

easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,231
24.09.2010, 12:28 #10
shyrik2014, а у меня все три с одинаковым успехом одно и то же вывели:
Код
~/cpp/other/stip $ cat stip01.c 
#include <stdio.h>

int main(void){
    double s, n, x;
    int days;

    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);

    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
    printf("Enough for %d days, and %.2f money left.\n", days, s);

    return 0;
}

~/cpp/other/stip $ gcc -o stip01 stip01.c 
~/cpp/other/stip $ cat stip02.cpp 
#include <iostream>
using namespace std;
int main()
{
double s,n,x;
int c=0;
cout <<"S=";
cin>>s;
cout<<"N=";
cin>>n;
cout<<"x=";
cin>>x;
while (s>=n)
{
c++;
s-=n;
n*=x;
}
cout<<"Stipendii xvatit na:"<<c<<"dney\nOstaetsya:"<<s<<endl;
return 0;
}
~/cpp/other/stip $ g++ -o stip02 stip02.cpp 
~/cpp/other/stip $ cat stip03.c 
#include <stdio.h>

int main(void){
    double s, n, x;
    int days;

    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);

    printf("\nDay #        Spent      Remains\n----------------------------------------\n");
    for ( days = 0; s - n >= 0; ++days, n *= x ){
        s -= n;
        printf("%5d   %10.2f   %10.2f\n", days + 1, n, s);
    }

    printf("\n----------------------------------------\nEnough for %d days, and %.2f money left.\n", days, s);

    return 0;
}
~/cpp/other/stip $ gcc -o stip03 stip03.c 
~/cpp/other/stip $ ./stip01
S = 150000
N = 5000
X = 2
Enough for 4 days, and 75000.00 money left.
~/cpp/other/stip $ ./stip02
S=150000
N=5000
x=2
Stipendii xvatit na:4dney
Ostaetsya:75000
~/cpp/other/stip $ ./stip03
S = 150000
N = 5000
X = 2

Day #        Spent      Remains
----------------------------------------
    1      5000.00    145000.00
    2     10000.00    135000.00
    3     20000.00    115000.00
    4     40000.00     75000.00

----------------------------------------
Enough for 4 days, and 75000.00 money left.
~/cpp/other/stip $
Цитата Сообщение от shyrik2014 Посмотреть сообщение
3 программы совершенно по иному работают, это связано что они написаны с разными циклами или в чём дело?
Самому интересно, может разные данные вводите? Судя по последнему скрину там вообще в минус деньги ушли - это как?
ЗЫ все три программы скопировал отсюда, единственное, что поправил - во второй вместо
C++
1
#include <iostream.h>
написал
C++
1
2
#include <iostream>
using namespace std;
g++ старый синтаксис заголовков отказывается принимать. Сами же циклы во всех трёх программах делают абсолютно одно и то же. s>=n по сути то же, что и s - n >= 0, если отрицательными числами не заморачиваться...
0
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 12:54  [ТС] #11
Цитата Сообщение от easybudda Посмотреть сообщение
shyrik2014, а у меня все три с одинаковым успехом одно и то же вывели:
Код
~/cpp/other/stip $ cat stip01.c 
#include <stdio.h>

int main(void){
    double s, n, x;
    int days;

    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);

    for ( days = 0; s - n >= 0; ++days, n *= x )
        s -= n;
    printf("Enough for %d days, and %.2f money left.\n", days, s);

    return 0;
}

~/cpp/other/stip $ gcc -o stip01 stip01.c 
~/cpp/other/stip $ cat stip02.cpp 
#include <iostream>
using namespace std;
int main()
{
double s,n,x;
int c=0;
cout <<"S=";
cin>>s;
cout<<"N=";
cin>>n;
cout<<"x=";
cin>>x;
while (s>=n)
{
c++;
s-=n;
n*=x;
}
cout<<"Stipendii xvatit na:"<<c<<"dney\nOstaetsya:"<<s<<endl;
return 0;
}
~/cpp/other/stip $ g++ -o stip02 stip02.cpp 
~/cpp/other/stip $ cat stip03.c 
#include <stdio.h>

int main(void){
    double s, n, x;
    int days;

    printf("S = ");
    scanf("%lf", &s);
    printf("N = ");
    scanf("%lf", &n);
    printf("X = ");
    scanf("%lf", &x);

    printf("\nDay #        Spent      Remains\n----------------------------------------\n");
    for ( days = 0; s - n >= 0; ++days, n *= x ){
        s -= n;
        printf("%5d   %10.2f   %10.2f\n", days + 1, n, s);
    }

    printf("\n----------------------------------------\nEnough for %d days, and %.2f money left.\n", days, s);

    return 0;
}
~/cpp/other/stip $ gcc -o stip03 stip03.c 
~/cpp/other/stip $ ./stip01
S = 150000
N = 5000
X = 2
Enough for 4 days, and 75000.00 money left.
~/cpp/other/stip $ ./stip02
S=150000
N=5000
x=2
Stipendii xvatit na:4dney
Ostaetsya:75000
~/cpp/other/stip $ ./stip03
S = 150000
N = 5000
X = 2

Day #        Spent      Remains
----------------------------------------
    1      5000.00    145000.00
    2     10000.00    135000.00
    3     20000.00    115000.00
    4     40000.00     75000.00

----------------------------------------
Enough for 4 days, and 75000.00 money left.
~/cpp/other/stip $
Самому интересно, может разные данные вводите? Судя по последнему скрину там вообще в минус деньги ушли - это как?
ЗЫ все три программы скопировал отсюда, единственное, что поправил - во второй вместо
C++
1
#include <iostream.h>
написал
C++
1
2
#include <iostream>
using namespace std;
g++ старый синтаксис заголовков отказывается принимать. Сами же циклы во всех трёх программах делают абсолютно одно и то же. s>=n по сути то же, что и s - n >= 0, если отрицательными числами не заморачиваться...
Данные ввожу одни и те же, вижу что у вас получается одно и то же, а про минус это да, в минус в одной из программ ушло)) попробую ещё всё тщательно переписать

Добавлено через 9 минут
easybudda, Прогнал эти программы, тоже самое, я думаю может это из-за компилятора Dos происходит?
0
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 22:43  [ТС] #12
Цитата Сообщение от shyrik2014 Посмотреть сообщение
Данные ввожу одни и те же, вижу что у вас получается одно и то же, а про минус это да, в минус в одной из программ ушло)) попробую ещё всё тщательно переписать

Добавлено через 9 минут
easybudda, Прогнал эти программы, тоже самое, я думаю может это из-за компилятора Dos происходит?
Прогрмму прописывал несколькос раз, а такойй мизерной ошибки как ; после цикла for не заметил, как знал что мелочь косячит весь результат, спасибо easybudda !
0
24.09.2010, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 22:43
Привет! Вот еще темы с решениями:

Ежемесячная стипендия студента составляет А руб., а расходы на проживание превышают стипендию и составляют В руб. в месяц.
Ежемесячная стипендия студента составляет А руб., а расходы на проживание...

Хватит ли ткани если первый кусок имеет длину R метров. Если хватит, выведите 1, иначе 0.
Здравствуйте все! Случилось непредвиденное, вновь приходится учиться заочно, а...

Сколько раз день рождения придётся на тот же самый день недели в течение 200 лет?
цикл по количеству лет. Допустим, нам надо узнать, сколько раз наш день...

лаба по инфе. зад2: Ежемесячная стипендия студента составляет A руб., а расходы на проживание превышают стипендию и составляют B руб. в месяц.
Рост цен ежемесячно увеличивает расходы на 3%. Составить программу расчета...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru