讨论 / AC100留念
officeyutong 2017-03-10 21:20:00
点我顶贴 收藏 删除
用了一下类233

#include <iostream>

#include <string>

#include <cmath>

using namespace std;

class JamNumber {

private:

char *data;

char min;

char max;

int digit;

public:

JamNumber(int min, int max, int digit) {

this->min = 'a' + min - 1;

this->max = 'a' + max - 1;

this->digit = digit;

this->data = new char[digit];

}

~JamNumber() {

delete [] data;

}

void input() {

cin>>data;

}

void output() {

for (int i = 0; i < digit; i++) {

std::cout << data[i];

}

std::cout << endl;

}

void plusBit(int digit, int val) {

if (data[digit] + val > max) {

plusBit(digit - 1, 1);

data[digit] = val + data[digit] - max + min - 1;

} else {

data[digit] += val;

}

// cout << "---data[" << digit << "]:" << data[digit] << " data[" << digit - 1 << "]:" << data[digit - 1] << "---" << endl;

if (data[digit] <= data[digit - 1]) {

plusBit(digit, 1);

}

}

};

int main(int argc, char ** argv) {

int min, max;

int digit;

cin >> min >> max>>digit;

JamNumber num = JamNumber(min, max, digit);

num.input();

for (int i = 0; i <= 4; i++) {

num.plusBit(digit - 1, 1);

num.output();

}

return 0;

}

查看更多回复
提交回复