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

Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... - C++

Восстановить пароль Регистрация
 
greategi
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 20
29.04.2012, 16:03     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #1
Помогите пожалуйста!
Заец. Его любимое занятие - прыгать по лесенке вверх,
перепрыгивая через ступеньки. Лестница имеет определенное количество
ступенек N. Котенок может одним прыжком преодолеть не более К ступенек.
Для разнообразия Мурзик пытается каждый раз найти новый путь к вершине
лестницы. Студентам второго курса факультета экономической информатики
стало интересно, сколько различных способов есть у котенка добраться до
вершины лестницы при заданных значениях K и N.
Напишите программу, которая поможет вычислить это количество.
Например, если K=3 и N=4, то существуют следующие маршруты: 1+1+1+1,
1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1. Т.е. при данных значениях у котенка
всего 7 различных маршрутов добраться до вершины лестницы.
Входные данные
В единственной строке входного файла INPUT.TXT записаны два
натуральных числа K и N (1 ≤ K ≤ N ≤ 63). К - максимальное количество
ступенек, которое может преодолеть котенок одним прыжком, N – общее
число ступенек лестницы.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести
количество возможных вариантов различных маршрутов котенка на верхнюю
ступеньку лестницы.

Примеры

№ INPUT.TXT OUTPUT.TXT
1 1 3 1
2 2 7 21
3 3 10 274


Вот мои ваяния
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
void main()
{
// Решение методом динамического программирования
int N,K;
long long F[100];
scanf("%d",&N);
scanf("%d",&K);
int temp;
F[1]=1,F[0]=1,F[2]=2,F[3]=4
for(int i=2; i <= (N+1); i++)
{
temp=0;
for(int j=1; j<=K; j++)
{
if( (i-j)>0)
{
temp+=F[i-j];
F[i]=temp;
}
}
}
printf("%I64d",F[N]);
system("pause");
}



ВОт еше пробовал
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
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <fstream>
using namespace std;
 
 
int main()
 {
     int k,n;
     cout<< " VVedite koli4estvo stypenek kota"<<endl;;
         cin>>k;
     cout<< "VVedite koli4estvo stypenek";
         cin>>n;
         unsigned long long *mas=new unsigned long long [n+1];
         mas[i]=f1;
         for (int i=2;i<=k;i++)
         {
             unsigned long long sum=1;
             for (int j=1;j<1;j++)
                 sum+=mas[j];
             mas[i]=sum;
         }
         for (int i=k+1;i<=n;i++)
         {
             unsigned long long sum=0;
             for (int j=i-k;j<i;j++)
                 sum+=mas[j];
             mas[i]=sum;
         }
        // for (int i=m;i<=n;i++)
             cout<<mas[i]<<"hi";
         if (k==f1) cout<<mas[i];
         else cout<<mas[i]<<endl;
         system("pause");
         return 0;
}


В Первой проге неправильно выводит . Во второй ошибки. Помогите если не тяжело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 16:03     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки...
Посмотрите здесь:

C++ Подпрограммы: Из заданного числа отняли сумму его цифр. Из результата опять отняли сумму его цифр и т.д. Через сколько таких действий получится ноль?
Функция отыскания длины сторон треугольника через вершины его координат. C++
Помогите открыть файл через его путь C++
C++ Как запустить консольное приложение через CreateProcess и спрятать его окно?
Перейти из левого нижнего в правый верхний угол массива, двигаясь вверх либо вбок, суммируя элементы через которые идем. Сумма должна быть минимальной C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.04.2012, 16:05     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #2
ты вопрос задай сначала.
На какие входные данные какие ошибочные ответы даются?
greategi
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 20
29.04.2012, 16:27  [ТС]     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #3
В Первой проге на все данные неправильные ответы.
Во второй проге проблемы в синтаксисе.

Добавлено через 2 минуты
Вот еше прога она выдает правильные ответы если кот прыгает не болие 3ех ступенек за 1 прижок. Если больше 3ех то выдает 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
24
25
26
27
28
29
30
31
32
33
34
35
fun.cpp
#include <iostream>
using namespace std;
void Shag1(int n, int k, int mass[])
{
     if (k==1)
     {mass[0]=1;}
     
     
     if (k==2)
     {
     mass[0]=1;
     mass[1]=2;
     }
     if (k==3)
     {
     mass[0]=1;
     mass[1]=2;
     mass[2]=4;
     }
     
    for(int i=k; i<n; i++)
    {
        for(int j=1; j<=k; j++)
        {
        mass[i]=mass[i]+mass[i-j];
        }
        
    }
    
        cout<<mass[n-1];
    
 
    
}

main.cpp
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
#include<iostream>
#include "head.h"
using namespace std;
void main()
{
    int n,k;
    
    
    setlocale(0,"Rus");
    cout<<"Введите количество ступенек ";
    cin>>n;  
    cout<<"Введите количество ступенек которые кот может перепрыгнуть ";
    cin>>k; 
    int* mass= new int[n];
    
    for(int i=0; i<n;i++)
        mass[i]=0;
    Shag1(n,k,mass);
 
 
 
 
 
system("pause");
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.04.2012, 16:36     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #4
Мне кажется, эта задача про Зайца уже была тут на форуме. Я её решал. Условие поставлено некорректно при N>=45 происходит переполнение переменных int. Идиот какой-то составлял, рожу б на чистить авторам некорректных условий. Заяц сдохнет столько раз прыгать.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.04.2012, 17:16     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main()  {
    long long K,N, mas[64]={0}, i, j;
       freopen("input.txt","r",stdin); 
       freopen("output.txt","w",stdout);
        scanf("%lld %lld",&K,&N);
        mas[0]=1;
        for(i=1; i<=N; i++)
            for(j=i-1; j>=0 && i-j<=K; j--)
                mas[i]+=mas[j];
        printf("%lld\n", mas[N]); 
        return 0; 
}
greategi
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 20
29.04.2012, 17:25  [ТС]     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #6
неработает. выдвет предупреждение
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2013, 17:54     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки...
Еще ссылки по теме:

C++ Двумерный массив через указатели и его заполнение
Как запихнуть в exe html файл и открыть его через нужный мне браузер? C++
C++ Наше любимое квадратное уравнение(или возвращение в школу)

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

Или воспользуйтесь поиском по форуму:
skiff26
2 / 2 / 0
Регистрация: 15.11.2011
Сообщений: 47
16.05.2013, 17:54     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки... #7
Может кто предложить алгоритм решения такой задачи?
Yandex
Объявления
16.05.2013, 17:54     Заец. Его любимое занятие - прыгать по лесенке вверх, перепрыгивая через ступеньки...
Ответ Создать тему
Опции темы

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