Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
shyrik2014
 Аватар для shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
21.09.2010, 12:52     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #1
На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются в X раз?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2010, 12:52     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?
Посмотрите здесь:

C++ Какой суммарный путь пробежит спортсмен за 7 дней, увеличивая каждый день его на десять процентов? Перевести с паскаля.
Долгожитель (возраст не менее 100 лет) обнаружил однажды, что если к сумме квадратов цифр его возраста прибавить число дня его рождения, то как раз п C++
C++ Рассчитать, сколько нужно заплатить за месяц, если ребенок отходил N дней
C++ Рассчитать, сколько нужно заплатить за месяц, если ребенок отходил N дней
C++ Какой суммарный путь пробежит спортсмен за 7 дней, увеличивая каждый день его на десять процентов?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.09.2010, 13:04     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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;
}
shyrik2014
 Аватар для shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
21.09.2010, 13:43  [ТС]     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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 осуществить это решение?
LineStown
 Аватар для LineStown
63 / 63 / 3
Регистрация: 04.08.2010
Сообщений: 399
21.09.2010, 14:50     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.09.2010, 17:00     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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;
}
shyrik2014
 Аватар для shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 00:49  [ТС]     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.09.2010, 01:39     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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;
}
просто из любопытства - а где это такие стипендии?
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
24.09.2010, 01:47     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #8
Цитата Сообщение от easybudda Посмотреть сообщение
просто из любопытства - а где это такие стипендии?

Не по теме:

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

shyrik2014
 Аватар для shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 12:06  [ТС]     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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 программы совершенно по иному работают, это связано что они написаны с разными циклами или в чём дело?
Миниатюры
На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?   На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?   На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?  

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.09.2010, 12:28     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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, если отрицательными числами не заморачиваться...
shyrik2014
 Аватар для shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
24.09.2010, 12:54  [ТС]     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? #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 происходит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 22:43     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?
Еще ссылки по теме:

C++ Спртсмен пробегает каждый день на 10% больше. Сколько пробежит за семь дней?
C++ Если элемент исходной последовательности встречается один раз, то заменить его на 1, если несколько, то 0
C++ Определить сколько раз встречается в тексте первое его слово

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

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

Добавлено через 9 минут
easybudda, Прогнал эти программы, тоже самое, я думаю может это из-за компилятора Dos происходит?
Прогрмму прописывал несколькос раз, а такойй мизерной ошибки как ; после цикла for не заметил, как знал что мелочь косячит весь результат, спасибо easybudda !
Yandex
Объявления
24.09.2010, 22:43     На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз?
Ответ Создать тему
Опции темы

Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru