<bgdev />free

| |  


All tags 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game gcc github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux m0 ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


[РЕШЕНО (дано този път наистина)] Малко математика като за полу-, цели и още по-цели идиоти

  

0 1 2


  ФейкПрофил  Създадено на 05.12.2020, видяно: 1953 пъти. #20538

Донякъде и с револют.

С революта няма такси освен ако не пращаш много големи суми



  Courvoisier  Последно редактирано на 05.12.2020 от Courvoisier, видяно: 1940 пъти. #20586
гофи2

Като махнах оптимизацията на първа стъпка винаги да е едно, а да го смята, всички станаха единици. Макар пак някак си моите стъпки да вадят различен резултат от твоя. На първа стъпка имам тройка и чак тогава на втора имам 30 като при теб, 11; 16; 64; 60; 20 и т.н.

БЛАГОДАРЯ!!!

Първото не винаги е 1. Първото ти е цифрата на позиция 1. Последното число в контролната сума трябва да ти е 1.

Ето ти сметката, 30 за първото преобразуване е вярно @ .NET Fiddle

using System;
using System.Text;

namespace MyApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string input = "BG31UNCR70001523774937";
            Console.WriteLine($"{nameof(input)}={input}");

            string rearranged = input.Substring(4, input.Length - 4) + input.Substring(0, 4);
            Console.WriteLine($"{nameof(rearranged)}={rearranged}");

            StringBuilder sb = new StringBuilder();
            foreach (var @char in rearranged)
            {
                int temp;
                if (char.IsLetter(@char))
                    temp = @char - 55;
                else
                    temp = short.Parse(@char.ToString());

                sb.Append(temp);
            }

            var asciiCoded = sb.ToString();
            Console.WriteLine($"{nameof(asciiCoded)}={asciiCoded}");

            short checksum = short.Parse(asciiCoded.Substring(0, 1));
            Console.WriteLine($"step 0; checksum={checksum}");

            for (var i = 1; i < asciiCoded.Length; i++)
            {
                Console.WriteLine("---------");
                Console.Write($"step {i}; ");
                Console.Write($"checksum={checksum}; ");

                Console.Write($"checksum = checksum*10 = {checksum}*{10} = ");
                checksum *= 10;
                Console.Write(checksum);

                Console.Write($"; checksum = checksum+asciiCoded[{i}] = {checksum}+{asciiCoded.Substring(i, 1)} = ");
                checksum += short.Parse(asciiCoded.Substring(i, 1));
                Console.Write(checksum);

                Console.Write($"; checksum = checksum%97 = {checksum}%97 = ");
                checksum %= 97;
                Console.WriteLine(checksum);
            }

            Console.WriteLine($"Is IBAN? {checksum == 1}");
        }
    }
}


Ще получиш резултат:

input=BG31UNCR70001523774937
rearranged=UNCR70001523774937BG31
asciiCoded=3023122770001523774937111631
step 0; checksum=3
---------
step 1; checksum=3; checksum = checksum*10 = 3*10 = 30; checksum = checksum+asciiCoded[1] = 30+0 = 30; checksum = checksum%97 = 30%97 = 30
---------
step 2; checksum=30; checksum = checksum*10 = 30*10 = 300; checksum = checksum+asciiCoded[2] = 300+2 = 302; checksum = checksum%97 = 302%97 = 11
---------
step 3; checksum=11; checksum = checksum*10 = 11*10 = 110; checksum = checksum+asciiCoded[3] = 110+3 = 113; checksum = checksum%97 = 113%97 = 16
---------
step 4; checksum=16; checksum = checksum*10 = 16*10 = 160; checksum = checksum+asciiCoded[4] = 160+1 = 161; checksum = checksum%97 = 161%97 = 64
---------
step 5; checksum=64; checksum = checksum*10 = 64*10 = 640; checksum = checksum+asciiCoded[5] = 640+2 = 642; checksum = checksum%97 = 642%97 = 60
---------
step 6; checksum=60; checksum = checksum*10 = 60*10 = 600; checksum = checksum+asciiCoded[6] = 600+2 = 602; checksum = checksum%97 = 602%97 = 20
---------
step 7; checksum=20; checksum = checksum*10 = 20*10 = 200; checksum = checksum+asciiCoded[7] = 200+7 = 207; checksum = checksum%97 = 207%97 = 13
---------
step 8; checksum=13; checksum = checksum*10 = 13*10 = 130; checksum = checksum+asciiCoded[8] = 130+7 = 137; checksum = checksum%97 = 137%97 = 40
---------
step 9; checksum=40; checksum = checksum*10 = 40*10 = 400; checksum = checksum+asciiCoded[9] = 400+0 = 400; checksum = checksum%97 = 400%97 = 12
---------
step 10; checksum=12; checksum = checksum*10 = 12*10 = 120; checksum = checksum+asciiCoded[10] = 120+0 = 120; checksum = checksum%97 = 120%97 = 23
---------
step 11; checksum=23; checksum = checksum*10 = 23*10 = 230; checksum = checksum+asciiCoded[11] = 230+0 = 230; checksum = checksum%97 = 230%97 = 36
---------
step 12; checksum=36; checksum = checksum*10 = 36*10 = 360; checksum = checksum+asciiCoded[12] = 360+1 = 361; checksum = checksum%97 = 361%97 = 70
---------
step 13; checksum=70; checksum = checksum*10 = 70*10 = 700; checksum = checksum+asciiCoded[13] = 700+5 = 705; checksum = checksum%97 = 705%97 = 26
---------
step 14; checksum=26; checksum = checksum*10 = 26*10 = 260; checksum = checksum+asciiCoded[14] = 260+2 = 262; checksum = checksum%97 = 262%97 = 68
---------
step 15; checksum=68; checksum = checksum*10 = 68*10 = 680; checksum = checksum+asciiCoded[15] = 680+3 = 683; checksum = checksum%97 = 683%97 = 4
---------
step 16; checksum=4; checksum = checksum*10 = 4*10 = 40; checksum = checksum+asciiCoded[16] = 40+7 = 47; checksum = checksum%97 = 47%97 = 47
---------
step 17; checksum=47; checksum = checksum*10 = 47*10 = 470; checksum = checksum+asciiCoded[17] = 470+7 = 477; checksum = checksum%97 = 477%97 = 89
---------
step 18; checksum=89; checksum = checksum*10 = 89*10 = 890; checksum = checksum+asciiCoded[18] = 890+4 = 894; checksum = checksum%97 = 894%97 = 21
---------
step 19; checksum=21; checksum = checksum*10 = 21*10 = 210; checksum = checksum+asciiCoded[19] = 210+9 = 219; checksum = checksum%97 = 219%97 = 25
---------
step 20; checksum=25; checksum = checksum*10 = 25*10 = 250; checksum = checksum+asciiCoded[20] = 250+3 = 253; checksum = checksum%97 = 253%97 = 59
---------
step 21; checksum=59; checksum = checksum*10 = 59*10 = 590; checksum = checksum+asciiCoded[21] = 590+7 = 597; checksum = checksum%97 = 597%97 = 15
---------
step 22; checksum=15; checksum = checksum*10 = 15*10 = 150; checksum = checksum+asciiCoded[22] = 150+1 = 151; checksum = checksum%97 = 151%97 = 54
---------
step 23; checksum=54; checksum = checksum*10 = 54*10 = 540; checksum = checksum+asciiCoded[23] = 540+1 = 541; checksum = checksum%97 = 541%97 = 56
---------
step 24; checksum=56; checksum = checksum*10 = 56*10 = 560; checksum = checksum+asciiCoded[24] = 560+1 = 561; checksum = checksum%97 = 561%97 = 76
---------
step 25; checksum=76; checksum = checksum*10 = 76*10 = 760; checksum = checksum+asciiCoded[25] = 760+6 = 766; checksum = checksum%97 = 766%97 = 87
---------
step 26; checksum=87; checksum = checksum*10 = 87*10 = 870; checksum = checksum+asciiCoded[26] = 870+3 = 873; checksum = checksum%97 = 873%97 = 0
---------
step 27; checksum=0; checksum = checksum*10 = 0*10 = 0; checksum = checksum+asciiCoded[27] = 0+1 = 1; checksum = checksum%97 = 1%97 = 1


  Courvoisier  Създадено на 06.12.2020, видяно: 1920 пъти. #20649

Мога да ти пратя self-contained linux x64 executable за следния код:


using System;
using System.Collections.Generic;

namespace IsIban
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            Console.Write("Path of input file: ");
            var path = Console.ReadLine();

            Console.WriteLine();
            Console.WriteLine($"Reading all ibans from file {path}");

            if(!System.IO.File.Exists(path))
            {
                Console.WriteLine("File does not exist!");
                return;
            }    

            var lines = System.IO.File.ReadAllLines(path);
            foreach(var item in lines)
            {
                var isIban = item
                    .RearangeIban()
                    .ToCalculationList()
                    .GetChechsum()
                    .IsValid();

                Console.WriteLine($"{item} = {isIban}");
            }
        }

        private static bool IsValid(this int input)
        {
            return input == 1;
        }

        private static int GetChechsum(this IList<int> input)
        {
            var checksum = input[0];

            for(int i = 1; i < input.Count; i++)
            {
                checksum *= 10;
                checksum += input[i];
                checksum %= 97;
            }

            return checksum;
        }

        private static IList<int> ToCalculationList(this string input)
        {
            var result = new List<int>();

            foreach (var item in input)
            {
                if (!char.IsLetter(item))
                {
                    result.Add(item.ToInt32());
                    continue;
                }

                var temp = item - 55;
                if (temp <= 9)
                {
                    result.Add(item.ToInt32());
                    continue;
                }

                var tempString = temp.ToString();
                result.Add(tempString[0].ToInt32());
                result.Add(tempString[1].ToInt32());
            }

            return result;
        }

        private static int ToInt32(this char input)
        {
            return int.Parse(input.ToString());
        }

        private static string RearangeIban(this string input)
        {
            return input.Substring(4, input.Length - 4) + input.Substring(0, 4);
        }
    }
}

Няма да ти иска dependency-та. На дебиани ще тръгне ако са x86/x64. За ARM ще трябва да го прекомпилирам. run-ваш го, например


nekav@myshtaiga:/mnt/c/ConsoleApp4/IsIban/bin/Release/netcoreapp3.1/publish$ ls -la
total 35340
drwxrwxrwx 1 nekav nekav     4096 Dec  6 13:38 .
drwxrwxrwx 1 nekav nekav     4096 Dec  6 13:26 ..
-rwxrwxrwx 1 nekav nekav     2230 Dec  6 13:13 ibans
-rwxrwxrwx 1 nekav nekav 36183533 Dec  6 13:26 IsIban
nekav@myshtaiga:/mnt/c/ConsoleApp4/IsIban/bin/Release/netcoreapp3.1/publish$ ./IsIban
Path of input file: ibans

Reading all ibans from file ibans
BG92UBBS80021088489340 = True
BG45UBBS80021091670040 = True
BG62TTBB94001528480941 = True
BG47UNCR70001523776977 = True
BG65RZBB91551009352869 = True
BG51TTBB94001527702326 = True
BG96TTBB94001528743490 = True
BG19RZBB91551011398942 = True
BG06STSA93001528484951 = True
BG40RZBB91551009680791 = True
BG49STSA93001528741421 = True
BG58TTBB94001527702685 = True
BG03STSA93000025186086 = True
BG85UBBS80021083643540 = True
BG38STSA93001528781971 = True
BG50TTBB94001527701956 = True
BG46STSA93000026213706 = True
BG84RZBB91551010887358 = True
BG94STSA93000025737348 = True
BG16UBBS80021093947540 = True
BG20STSA93000026499257 = True
BG48UBBS80021088486640 = True
BG95UBBS80021088487540 = True
BG18UNCR70001523431015 = True
BG20STSA93000026427574 = True
BG92TTBB94001527703140 = True
BG40UBBS80021088675740 = True
BG65STSA93001528750639 = True
BG91TTBB94001527702673 = True
BG12TTBB94001527702252 = True
BG14TTBB94001528131053 = True
BG14TTBB94001527701731 = True
BG44STSA93000025601575 = True
BG58STSA93000000243486 = True
BG26TTBB94001527702291 = True
BG39UBBS80021088482340 = True
BG02STSA93001528135435 = True
BG07TTBB94001528229149 = True
BG19UNCR70001523802022 = True
BG24STSA93000025179500 = True
BG17TTBB94001527702356 = True
BG38TTBB94001528653742 = True
BG77STSA93000026047860 = True
BG97UBBS80021088631840 = True
BG13TTBB94001527701943 = True
BG42RZBB91551008580484 = True
BG49STSA93000025721765 = True
BG51STSA93000025781869 = True
BG16UBBS80021088486440 = True
BG93RZBB91551097956530 = True
BG04STSA93000025737319 = True
BG52TTBB94001528774158 = True
BG35UBBS80021088455640 = True
BG70STSA93000025733609 = True
BG11STSA93000025118624 = True
BG58TTBB94001528743398 = True
BG66UBBS80021088456440 = True
BG69STSA93000027143231 = True
BG88TTBB94001528770794 = True
BG86UBBS80021088677240 = True
BG31UNCR70001523774937 = True
BG44TTBB94001527702355 = True
BG90STSA93000025743919 = True
BG36UBBS80021091830640 = True
BG64TTBB94001527702771 = True
BG06RZBB91551009391567 = True
BG86UBBS80021089230140 = True
BG54UBBS80021091887740 = True
BG78TTBB94001527702713 = True
BG10STSA93000027041570 = True
BG34RZBB91551011773771 = True
BG15STSA93000025520229 = True
BG34RZBB91551010904748 = True
BG04UBBS80021089046540 = True
BG27TTBB94001527702758 = True
BG16TTBB94001528464309 = True
BG21TTBB94001527702284 = True
BG62STSA93000025158931 = True
BG66TTBB94001527702056 = True
BG52UNCR70001523692594 = True
BG15UBBS80021091891740 = True
BG40TTBB94001528737514 = True
BG07UBBS80021088482140 = True
BG79UNCR70001523414494 = True
BG17TTBB94001527701677 = True
BG88STSA93000026043588 = True
BG04UBBS80021088939840 = True
BG22UNCR70001523787321 = True
BG26TTBB94001527703067 = True
BG09STSA93001528741171 = True
BG05STSA93001528509995 = True
BG11TTBB94001527702658 = True
BG73RZBB91551007969893 = True
nekav@myshtaiga:/mnt/c/ConsoleApp4/IsIban/bin/Release/netcoreapp3.1/publish$

Друг вариант е да си инсталираш netcore 3.1 sdk и да си го компилираш сам.



  гофи2  Създадено на 06.12.2020, видяно: 1912 пъти. #20671

Да, да! Благодаря! Вече няма нужда. Като махнах „оптимизацията“ заспа и изкарва твоите числа.

Отново, безкрайно благодаря, че беше толкова търпелив!


0 1 2


[РЕШЕНО (дано този път наистина)] Малко математика като за полу-, цели и още по-цели идиоти

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE