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

Помогите пожалуйста (срочно) - C++

Восстановить пароль Регистрация
 
ivan732
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 7
02.12.2011, 11:50     Помогите пожалуйста (срочно) #1
Муравей забрался на дерево, и порыв ветра унёс его на листочке далеко от муравейника. Муравей приземлился около ряда из стопок коробок кубической формы. Чтобы найти обратную дорогу к муравейнику, муравей решил забраться как можно выше на коробки и осмотреться. Он пополз сначала вверх на ближайшую стопку коробок, а, забравшись наверх, увидел, что есть еще более высокая стопка и переполз по коробкам на нее. И так муравей переползал со стопки на стопку, пока не обнаружил, что других более высоких стопок из коробок нет.
Напишите программу, которая определит длину пути муравья по коробкам до ближайшей самой высокой точки.
В первой строке содержатся одно целое число N (1 ≤ N ≤ 100) – количество стопок коробок. Во второй строке содержатся N целых чисел в диапазоне от 1 до 100 — высоты стопок.
Вывести одно целое число — длину пути муравья по коробкам до ближайшей самой высокой точки.
Пример ввода
5
3 1 4 2 4
Пример вывода
10
Пояснение к примеру: муравью нужно проползти 1+1=2 единицы длины по горизонтали и 3+2+3=8 единиц по вертикали вверх и вниз.

2.

Третьеклассник Вася прочитал про теорему Ферма и придумал свою теорему: «Для любых натуральных чисел a>1 и b>1 найдется бесконечно много натуральных чисел n таких, что an + bn делится на n без остатка».
Напишите программу, которая найдет для заданных a и b все числа n, не превосходящие M, для которых выполняется свойство из теоремы Васи. При проверке делимости некоторого выражения на n можно все вычисления в этом выражении выполнять с остатками от деления на n:
(x+y) mod n = ((x mod n) + (y mod n)) mod n
(x·y) mod n = ((x mod n) · (y mod n)) mod n
В первой строке содержатся три целых числа a, b и M (2 ≤ a, b ≤ 100, 2 ≤ M ≤ 100000).
Вывести варианты n в диапазоне от 1 до M включительно в порядке возрастания, для которых выполняется свойство, указанное в теореме Васи. Каждое значение вывести на отдельной строке.
Пример ввода
2 3 100
Пример вывода
1
5
25
55
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
02.12.2011, 12:00     Помогите пожалуйста (срочно) #2
По первой задаче могу только подсказать..

При вводе данных определяете сразу максимальный элемент и его индекс.
Путь по горизонтали будет равен индексу - 1, путь по вертикали - модулю разности всех соседних чисел до максимального (причем сначала находится разница первого элемента и нуля).
ivan732
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 7
02.12.2011, 12:14  [ТС]     Помогите пожалуйста (срочно) #3
Дайте код пожалуйста(
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
02.12.2011, 12:26     Помогите пожалуйста (срочно) #4
А по второй задаче вы ничего не попутали? Потому что
Цитата Сообщение от ivan732 Посмотреть сообщение
«Для любых натуральных чисел a>1 и b>1 найдется бесконечно много натуральных чисел n таких, что an + bn делится на n без остатка».
выполняется для любых n
ivan732
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 7
02.12.2011, 12:30  [ТС]     Помогите пожалуйста (срочно) #5
Это степень a^n+b^n. Но дайте код 1 задачки вот мой код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<iostream>
using namespace std;
main()
{
int c=0,a,n=0,h=0,d=0;
cin>>a;
int b[a];
cin>>b;
for (int i=0;i<a;i++)
if(a[i]>c){c=a[i];}
for (int j=0;j<a;j++)
d=a[i]-a[i-1];
n=n+d;
h=n+c;
cout<<h;
}
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
02.12.2011, 12:39     Помогите пожалуйста (срочно) #6
Цитата Сообщение от ivan732 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<iostream>
using namespace std;
main()
{
int c=0,a,n=0,h=0,d=0;
cin>>a;
int b[a];
cin>>b;
for (int i=0;i<a;i++)
if(a[i]>c){c=a[i];}
for (int j=0;j<a;j++)
d=a[i]-a[i-1];
n=n+d;
h=n+c;
cout<<h;
}
Вы вообще понимаете, что пишите? Вы используете переменные int как массивы, массив b вообще не используется
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 12:41     Помогите пожалуйста (срочно)
Еще ссылки по теме:

C++ Срочно Народ помогите!
C++ помогите пожалуйста решить задачу, срочно - экзамен

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

Или воспользуйтесь поиском по форуму:
ivan732
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 7
02.12.2011, 12:41  [ТС]     Помогите пожалуйста (срочно) #7
Цитата Сообщение от AncinetHero Посмотреть сообщение
Вы вообще понимаете, что пишите? Вы используете переменные int как массивы, массив b вообще не используется
Массивы я просто еще не изучал, и не совсем понимаю как решить поэтому.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<iostream>
using namespace std;
main()
{
int c=0,a,n=0,h=0,d=0;
cin>>a;
int b[a];
for (int y=0;y<a;y++)
scanf("%d",&b);
for (int i=0;i<a;i++)
if(b[i]>c){c=b[i];}
for (int j=0;j<b[i];j++)
d=b[j]-b[j-1];
n=n+d;
h=n+c;
cout<<h;
}
 Комментарий модератора 
Используйте теги форматирования кода!


Исправил но все равно не понимаю
Yandex
Объявления
02.12.2011, 12:41     Помогите пожалуйста (срочно)
Ответ Создать тему
Опции темы

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