Loading...
Chetiov avatar Chetiov 5 Точки

Задача Increment Variable

Наглед проста програмка ми създава проблеми в джъджа 60 / 100 точки не ми е много ясно защо за това моля за съдействие :)

Ето условието:

Increment Variable

Write a program to increment a byte variable (starting at 0) n times and print the result. If you detect an overflow (or several), print how many times there was an overflow alongside the variable value. Sounds simple, right?

Examples

Input

Output

50

50

1000

232

Overflowed 3 times

256

0

Overflowed 1 times

 

А ето и моето грешно решение :

линк

Тагове:
0
Programming Fundamentals 30/01/2017 16:02:27
ThePSXHive avatar ThePSXHive 436 Точки

Можеш да инициализираш overFlowTimes просто с 0, вместо с този израз. Грешката е в това, че проверката за препълване не е част от блокът, в които се инкрементира стойността от тип byte. Трябва да проверяваш за препълване по време на инкрементирането, и тогава да модифицираш стойността на overFlowTimes. Освен това ти е необходима само една проверка в края на извеждането на резултатът. Кодът с корекции.

0
AtanasNikolov avatar AtanasNikolov 22 Точки

А защо не пробваш с модулно делене на (byte.MaxValue+1) - за крайната стойност.

И съответно с целочислено делене на byte.MaxValue - за брой превъртания.

0
Iamnikkysiderov avatar Iamnikkysiderov 15 Точки

И при мене е 60/100. Първо си помислих, че може и като input да има и отрицателни числа, обаче не съм сигурен как едно число превъртя при отрицателни числа въведени.Ето го и моя код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _35.IncrementVariable
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = int.Parse(Console.ReadLine());
            int overflow = Math.Abs(number / byte.MaxValue);

            if (number > byte.MaxValue)
            {
                number = (number - (byte.MaxValue * overflow)) - overflow;

                Console.WriteLine(number);
                Console.WriteLine("Overflowed {0} times",overflow);
            }
            else
            {
                Console.WriteLine(number);
            }

        }
    }
}
 

0
Bullsized avatar Bullsized 153 Точки

ако мога да се включа в сесията с моето малко по-чобанско решение: https://pastebin.com/AcTjQEWb

нито съм използвал байтове, нито съм си именувал променливите, просто седнах и си разцъках собствен алгоритъм на една тетрадка и реших да го напиша набързо, извинявам се. но все пак задачата по този начин дава 100 от 100, ако някое джъдж джънки иска да вземе макс точките :)

0
08/04/2017 01:16:02
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.