Procedure Go(a : Byte; a4,a9 : boolean; s : String); Begin If (a=Finish) and a4 and a9 then Begin Inc(N); Writeln(s); end else If a<Finish then Begin a4:=a4 or (a=4); a9:=a9 or (a=9); Go(a+1,a4,a9,s+'+1'); Go(a+2,a4,a9,s+'+2'); Go(a*3,a4,a9,s+'*3'); end; end;
Begin N:=0; Go(1,false,false,'1'); Writeln('Всего вариантов: ',N); end.
int hexCharToDec(char hexChar) { switch (hexChar) { case 'a': return 10; break; case 'b': return 11; break; case 'c': return 12; break; case 'd': return 13; break; case 'e': return 14; break; case 'f': return 15; break; default: return hexChar - 48; break; } }
int hexToDec(string hexString) { std::transform(hexString.begin(), hexString.end(), hexString.begin(), ::tolower); int power = 0, ret = 0; for (string::reverse_iterator rit = hexString.rbegin(); rit != hexString.rend(); ++rit) { ret += hexCharToDec(*rit) * pow(16, power); power++; } return ret; }