К основному контенту

Сообщения

Сообщения за сентября 8, 2017

алгоритм поиска квадрата для равномерного деления прямоугольника

import std . stdio ; /* алгоритм поиск максимально возможного квадрата внутри прямоугольной области, которым можно поделить ее на равные квадраты */ void main () { int w ; int h ; write ( "w=" ); readf ( " %s" ,& w ); write ( "h=" ); readf ( " %s" ,& h ); writeln ( "square: w = " , w , ", h = " , h ); if ( w == h ) { writeln ( "answer = " , w ); return ; } int s ; do { s = ( w > h ) ? w - h : h - w ; if ( s == w || s == h ) { writeln ( "answer = " , s ); return ; } if ( w > h ) w = s ; else h = s ; } while ( s > 0 ); writeln ( "not answer" ); }

dlang - простой язык для повседневных вещей

Снова вернулся интерес к Ди-2   Также, в рунет появился неплохой фанатский сайт http://dlang.ru   Посмотрите на код ниже. Пару минут ушло на реализацию обобщенных алгоритмов поиска перебором и быстрой сортировки. Мне нравится. import std.stdio; import std.datetime.stopwatch; long [] arr =[]; void main() { long i; while (!stdin.eof) { readf( "%d\n" , &i); arr ~= i; } auto b = benchmark!(Test,Test2)( 1 ); writeln(b[ 0 ]); writeln(b[ 1 ]); writeln( "done" ); } void Test() { auto i = FindIndex(arr, 4023201323 ); writeln(i); } void Test2() { auto r = qs(arr); foreach (e;r) writeln(e); } int FindIndex(T)(T[] array, T e) { foreach (i,a; array) if (a==e) return i; return - 1 ; } T[] qs(T)(T[] src) { if (src.length < 2 ) return src; T s = src[ 0 ]; T[] l; T[] g; ...