UVa10101 - Bangla Numbers (水題)

題目大意:

給一數字,用題目獨家的單位詞做輸出

分析:

透過遞迴 (recursive),來幫助 x lakh y kuti。
數字要開 long long

本人覺得這題我寫得很好,但可能會被其他大神嫌棄

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <bits/stdc++.h>
#define LOCAL
using namespace std;

void recursive(string strInt){
int len , intCout ;
// hajar 10000000
len = strInt.length() - 7;
if(len > 0 ){
recursive(strInt.substr(0,len));
cout << " kuti" ;
strInt = strInt.substr(strInt.length()-7 , 7);
}

// lakh 100000
len = strInt.length() - 5;
if(len > 0){
intCout = stoi(strInt.substr(0,len));
if(intCout)
cout << ' ' << intCout << " lakh";
strInt = strInt.substr(strInt.length()-5 , 5);
}

// hajar 1000
len = strInt.length() - 3;
if(len > 0){
intCout = stoi(strInt.substr(0, len));
if(intCout)
cout << ' ' << intCout << " hajar";
strInt = strInt.substr(strInt.length()-3 , 3);
}

// shata 100
len = strInt.length() - 2;
if(len > 0){
intCout = stoi(strInt.substr(0,len));
if(intCout)
cout << ' ' << intCout << " shata";
strInt = strInt.substr(strInt.length()-2 , 2);
}
if(stoi(strInt))
cout << ' ' << stoi(strInt) ;
}


int main()
{
#ifdef LOCAL
freopen("in1.txt" , "r" , stdin);
freopen("out.txt" , "w" , stdout);
#endif // LOCAL
string strInt;
int intCase=1 , len , intTemp;
while(cin >> strInt){
for(int i = 0 ; i < 4- to_string(intCase).length() ; i++ )
cout << ' ' ;
cout << intCase++ << "." ;
recursive(strInt);
if(strInt == "0")
cout << " 0" ;
cout << '\n' ;

}
return 0;
}
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: