![]() |
Re: Задачка!!!
и еще операторы сложения и присваивания
|
Re: Задачка!!!
Цитата:
Len(...)-Ето я понял (надеюсь!)!!! Ета команда подсчитывает количество символов числа, или там переменной! А команди Str и Mid недогнал крапаль! |
Re: Задачка!!!
str - переводит число в строку, т.е. например число 123 будте строкой "123" синтаксис такой a$=str(b%). ето необходимо чтоюб было можно использовать команду mid$. Она нужна для определения символа / группы символов в строке. Синтаксис такой : h$=mid(s$,первый сивол, скока символов). Например mid("собака",2,3) вернет "оба", а mid("собака",3,3) вернет "бак". В общем твоя задача сведется к приведению числа к строке, как первого так и второго.
Разберем твой пример: 9562814547697752438 число большое и блитз его не держит, поэтому объявим сразу строкой, второе тоже ради удобства. [blitz] a$="9562814547697752438" b$="47" [/blitz] далее определяем скока символов в каждой из строк: [blitz] a$="9562814547697752438" b$="47" ca=len(a) cb=len(b) [/blitz] далее задаем новую строку, в которую будем записывать результат: [blitz] a$="9562814547697752438" b$="47" ca=len(a) cb=len(b) rs$="" [/blitz] далее идет собственно само решение, берем первый символ первой строки и сравнивапес его со всеми символами второй строки, если где-то он есть, то прибавляем его к новой строке (там где результат). [blitz] a$="9562814547697752438" b$="47" ca=Len(a) cb=Len(b) rs="" For i=1 To ca For j=1 To cb If Mid(a,i,1)=Mid(b,j,1) Then rs=rs+Mid(b,j,1) Next Next Print rs [/blitz] у этого метода сразу просматривается огромный минус, все цифры во второй строке должны встречаться только один раз, так как это в условиях не оговаривалось, будем делать так чтобы во второй строке символы могли повторяться. Собственно не мудря слишкомЮ, добавляем exit после rs=rs+Mid(b,j,1) и получаем: [blitz] a$="9562814547697752438" b$="47" ca=Len(a) cb=Len(b) rs="" For i=1 To ca For j=1 To cb If Mid(a,i,1)=Mid(b,j,1) Then rs=rs+Mid(b,j,1):Exit Next Next Print rs [/blitz] вот и все.;) p.s. Надеюсь ты следил за мыслью, а не листингом кода. |
Re: Задачка!!!
Спасибки! Вот я то понял, но не все!!! Даже если у нас в условиях не уговаривалось про повтор числа b, но цикл то наш запущен!!! І програма должна виполнить все варианти от 1 до са !!! Как так! І команда Ехіт значит конец програми, или команди? Я думал что в програме вместо Ехіт используют Еnd! И вобще, какая разница между Еnd и Ехіт!!!
|
Re: Задачка!!!
Ok, ща все объясню.
Exit используется для вывода упраляющего элемента за цикл. В нашем случае exit использовался для предотвращения повторения цифры. Попробуй убрать его и вместо 47 написать 477 или 474, посмотри результат. End - все, оно и в африке все. Используется для выхода из программы. |
Re: Задачка!!!
А скоко цифр поддерживает Блитз(v1.88 )??? И вот еще! У меня эсть число А, нужно найти Х и У если А = Х квадрат + У квадрат!!!
Я зделал так, но есть ли способ зделать ето проще??? A#=Input$("Input #") B#=A#/5 X#=B#*2 Y#=B#*3 Print"X= " +Sqr(X#)+ " Y= " +Sqr(Y#) WaitKey (Просто я уверен, что ето както по деревенски!!!) |
Re: Задачка!!!
a - известно; x,y - нет
a = x^2 + y^2 уравнение с двумя неизвестными - не решается :) ну можно построить график y = sqrt(x^2 - a) где a <= x^2 тогда при XeR получаем y :) |
Re: Задачка!!!
-2147483648..2147483647
|
Re: Задачка!!!
HolyDel
можно создать variable size переменую и тогда количество вариантов ограничивается вот так по 256 ^ bytes :) при bytes > 1024 (1 кб) мы и так получаем офигительные числа а для числа можно юзать и 10 кб и 100 кб и метр ... |
Re: Задачка!!!
2 Jimon, а как? В блитз?
|
Re: Задачка!!!
создаеш в C++ класс, ему прописываеш операторы нужные (ну там сложение, отнимание и тд)
прописываеш функцию перевода в строку и из строки и получаем неплохой тип переменой еще надо будет зделать typedef class my_var my_var и получаем практически уже полноценую переменую :) хотя ето не очень и так :-) |
Re: Задачка!!!
Может и да, но при больших числах в блитце у меня получялись неправильные ответы!!! (Например 3482785430637362507256780974826780 Даже при использовании команды Str)
|
Re: Задачка!!!
Halk-DS
непонял |
Re: Задачка!!!
2 Jimon, ага, все понятно, такую фигню можно и на блитзе замутить, такое число будет иметь максимальный размер -(10^256)+1..10^256-1 и для работы с ним нужны будут свои команды.
2 Jimon (непонял), а че непонятного, он использовал обычные числа блитза, максимальное значение которых я уже писал. |
Re: Задачка!!!
Просто любое число, так как вы говорите отображается в степенях!!! И почемуто ответ неправильный :( !!!
И еще 8) ! Я немогу понять команды sqrt() и Sgn()! Просто в хелпах чють непонятно написано!!! |
Часовой пояс GMT +4, время: 16:14. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot