This is a kind of number. The remainder of the new number pair formed after the right of any number is 0. For example, 2, No matter what number is placed on the right side of 2, the number is always an even number. Therefore, the remainder of 2 is 0. The number between m and n is given.
Idea: such a number is regular. Based on the scope given by the question, you can enumerate all the numbers and then judge them.
Code:
[Cpp]
# Include <iostream>
# Include <cstdio>
# Include <string. h>
Using namespace std;
Struct num {
Long value, sum;
} Nn [1, 110];
Void init (){
Nn [1]. value = 1; nn [2]. value = 2; nn [3]. value = 5; nn [4]. value = 10; nn [5]. value = 20; nn [6]. value = 25; nn [7]. value = 50; nn [8]. values = 100;
Nn [9]. value = 125; nn [10]. value = 200; nn [11]. value = 250; nn [12]. value = 500; nn [13]. values = 1000;
Nn [14]. value = 1250; nn [15]. value = 2000; nn [16]. value = 2500; nn [17]. value = 5000; nn [18]. values = 10000;
Nn [19]. value = 12500; nn [20]. value = 20000; nn [21]. value = 25000; nn [22]. value = 50000; nn [23]. values = 100000;
Nn [24]. value = 125000; nn [25]. value = 200000; nn [26]. value = 250000; nn [27]. value = 500000; nn [28]. values = 1000000;
Nn [29]. value = 1250000; nn [30]. value = 2000000; nn [31]. value = 2500000; nn [32]. value = 5000000; nn [33]. values = 10000000;
Nn [34]. value = 12500000; nn [35]. value = 20000000; nn [36]. value = 25000000; nn [37]. value = 50000000; nn [38]. values = 100000000;
Nn [39]. value = 125000000; nn [40]. value = 200000000; nn [41]. value = 250000000; nn [42]. value = 500000000; nn [43]. values = 1000000000;
Nn [44]. value = 1250000000; nn [45]. value = 2000000000; nn [46]. value = 2500000000; nn [47]. value = 5000000000;
For (int I = 1; I <= 50; ++ I)
Nn [I]. sum = I;
Nn [0]. value = 0;
}
Int main (){
Init ();
Long m, n;
While (scanf ("% lld", & m, & n )! = EOF ){
Int sn = 0, sm = 0;
M --;
For (int I = 0; I <47; ++ I ){
If (nn [I]. value <= n & nn [I + 1]. value> n)
{Sn = I; break ;}
}
// Cout <"sn =" <sn <endl;
For (int I = 0; I <47; ++ I ){
If (nn [I]. value <= m & nn [I + 1]. value> m ){
Sm = I; break;
}
}
// Cout <"sm =" <sm <endl;
Printf ("% d \ n", sn-sm );
}
Return 0;
}
Author: wmn_wmn