o*******y 发帖数: 115 | 1 A000000, … , A999999
200,000 : “A0* or A1*”
getQuery(200000) returns “A0* or A1*”
2 : “A000000 or A000001”
getQuery(2) returns “A000000 or A000001”
写一个 String getQuery(int n), 返回query的string | j*****7 发帖数: 10575 | | b*********n 发帖数: 1258 | 3 #include
#include
using namespace std;
void getQuery(int number, int length)
{
int original_len = length;
while(number)
{
int mod = number%10;
if( mod != 0 ) {
int base = number - number%10;
for (int i=0; i
cout<< "A";
for (int j=0; j0?(int)log10((
float)base):0; ++j) {
cout<< 0;
}
cout<< base+i << ((original_len==length)?"":
"*") <
}
}
number /= 10;
length--;
}
return;
}
int main(int argc, char* argv[])
{
int length = 6;
int number = 200002;
getQuery(number, --length);
cin.get();
return 0;
}
【在 o*******y 的大作中提到】 : A000000, … , A999999 : 200,000 : “A0* or A1*” : getQuery(200000) returns “A0* or A1*” : 2 : “A000000 or A000001” : getQuery(2) returns “A000000 or A000001” : 写一个 String getQuery(int n), 返回query的string
| i*********7 发帖数: 348 | | I*****8 发帖数: 37 | 5 也没怎么看懂,肯定是还要问清楚一点才能答,
我的想法估计是: 判断给的string位数和int位数,string大出来的位数直接输出,剩
下的string和int取模,输出模的第一位,如果给的int位数不为1,则再输出'*'.写的
时候估计要注意两个string取模的部分。
query('A0000000',2) ->'A0000000'
query('A0000001',2) ->'A0000001'
query('A0000002',2) ->'A0000000'
query('A0123456',21)->'A0123401*'
query('A6543250',32)->'A654321*'
query('A0054321',2000000)->'A0*'
query('A5432101',2000000)->'A1*'
【在 i*********7 的大作中提到】 : 同没看懂。。。
|
|