Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Без целия ти код няма как да съм сигурен , но мисля че ако n е 3 ти вместо да принтираш третото число което са ти дали, събира6 1вото и 2рото и принтира6 това. Например ако инпута е 1 1 1 3, трябва да принтираш 1, а ти принтираш 2. Пробвай това, и ако пак не ти дава 100 ще трябва да си изтеглиш тестовете с които Judge ти проверява програмата.
Ето го целия код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Problem 2 – Tribonacci
//The Tribonacci sequence is a sequence in which every next element is made by
//the sum of the previous three elements from the sequence.
//Write a computer program that finds the Nth element of the Tribonacci sequence,
//if you are given the first three elements of the sequence and the number N.
//Mathematically said: with given T1, T2 and T3 – you must find Tn.
//Input
//• The input data should be read from the console.
//• The values of the first three Tribonacci elements will be given on the first
//three input lines.
//• The number N will be on the fourth line. This is the number of the consecutive
//element of the sequence that must be found by your program.
//• The input data will always be valid and in the format described. There is no
// need to check it explicitly.
class SimpleLoops
{
static void Main(string[] args)
{
System.Numerics.BigInteger T1 = int.Parse(Console.ReadLine());
System.Numerics.BigInteger T2 = int.Parse(Console.ReadLine());
System.Numerics.BigInteger T3 = int.Parse(Console.ReadLine());
System.Numerics.BigInteger n = int.Parse(Console.ReadLine());
System.Numerics.BigInteger Tn = T3 + T2 + T1;
if (n < 4)
{
if (n == 1)
{
Tn = 0;
}
else if (n == 2)
{
Tn = T1;
}
else
{
Tn = T1 + T2;
}
}
else
for (int i = 4; i < n; i++)
{
T1 = T2;
T2 = T3;
T3 = Tn;
Tn = T3 + T2 + T1;
}
Console.WriteLine(Tn);
}
}
Жълтото показва Тn при n = 3, т.е. май е така, както го казваш, но все пак дава грешка. От къде да изтегля въпросните тестове?
Тъй като за разлика от оригиналната Фибоначи редица, тук могат да ти подадат произволни числа за първите три елемента, третият елемент не е задължително равен на сбора на първите два (както е в редицата на Фибоначи). Ако например са ти въведени 3, 5 и 2 и от теб се иска третия елемент, твоята програма ще върне 8, което в случая е грешен резултат. Просто за n == 1 принтирай първия елемент, за n == 2 принтирай втория елемент, за n == 3 принтирай третия елемент, а за n > 3 прави изчисленията с цикъла. Ето го твоето решение за 100 точки. Успех! :)
В случай че n < 4, къде имаш Console.WriteLine(); за да принтираш резултата ? Твоят единствен WriteLine, (доколкото виждам) е във else след цикъла. Сложи къдрави скоби да се вижда по ясно, че и аз не съм сигурен каде е точно :)
Без значение колко е n, първо минава през if конструкциите, присвоява нужната стойност и чак накрая го изписва на конзолата. Последният Console.Writeline е извън else конструкцията, няма нужда от скоби.
Тестовете попринцип са тук най-отдолу но за този вариант незнам дали са качени https://softuni.bg/trainings/coursesinstances/details/2. Ти пробва ли да промениш IF-овете ? >Ето< аз как съм ги направил.
В твоя случай ако n е 1 трябва да принтираш Т1 ако n е 2 - Т2 и ако n е 3 - Т3Да, накрая принтирането е извън циклите и условните конструкции, така че принтира всяка присвоена стойност. Благодаря ви, получих 100 точки, когато при n < 3 присвоявам съответно Т1, Т2 и Т3, но честно казано не разбрах логиката. Първоначалният ми вариант се водеше от идеята, че щом елементът липсва, даваме му стойност 0, ето защо все едно, ако n = 2, Тn = Т1 + 0 + 0.
Логика няма, условието е закон :) Малко смешно звучи, но е така с повечето задачи.
Хехехе, така е, но не видях никъде в условието да се задава какво правим в тези случаи. Както и да е, важно е, че проработи, благодаря за помощта!