void static_sequence_gmr::build(uint * sequence, static_bitsequence_builder * bmb, static_sequence_builder * ssb) { uint num_chunks = len/chunk_length; chunk = new static_sequence*[num_chunks]; assert(chunk!=NULL); for (uint i=0;i<num_chunks;i++) { chunk[i] = ssb->build(sequence+i*chunk_length, chunk_length); //cout << "1." << i << endl; cout.flush(); assert(chunk[i]!=NULL); } uint * ones = get_ones(sequence); uint *B_bitmap = new uint[(2+len+(unsigned long long)num_chunks*sigma)/W+1]; assert(B_bitmap!=NULL); for (uint i=0;i<(2+len+(unsigned long long)num_chunks*sigma)/W+1;i++) B_bitmap[i] = 0; uint pos=0; for (unsigned long long i=0;i<(unsigned long long)num_chunks*sigma;i++) { for (uint j=0;j<ones[i];j++) { bitset(B_bitmap, pos); pos++; } pos++; } pos++; //cout << "5 pos=" << pos << endl; cout.flush(); B = bmb->build(B_bitmap, pos); //cout << "6" << endl; cout.flush(); delete [] B_bitmap; delete [] ones; }
int main(void) { int num, i, _1000, _100, _10, _1; char buf[32] = {0}; i = 0; while (1) { printf("Syötä nelinumeroinen kokonaisluku: "); fgets(buf, 32, stdin); sscanf(buf, "%i", &num); if (num > 999 && num < 10000) break; } while (!isdigit(buf[i])) { i++; } _1000 = ctoi(buf[i]); _100 = ctoi(buf[i+1]); _10 = ctoi(buf[i+2]); _1 = ctoi(buf[i+3]); printf("%s%s%s%s%s%s%s%s\n", ones[_1000], get_thousands(_1000), ones[_100], get_hundreds(_100), ones[_10], _10 == 1 ? "" : get_tens(_10), _1 == 1 ? "yksi" : get_ones(_1), _10 == 1 ? get_tens(_10) : ""); return 0; }
int main(void) { char ones, tens; printf("Enter a two-digit number: "); scanf("%1c%1c", &tens, &ones); if (tens == '1') printf("%s\n", get_teens(ones)); else if (ones == '0') printf("%s\n", get_tens(tens)); else printf("%s-%s\n", get_tens(tens), get_ones(ones)); return 0; }