problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3448 命名空间参考

  1. 基本算术
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3448, case1)
 
 TEST (acwing3448, case2)
 

详细描述

  1. 基本算术

函数说明

◆ main()

int acwing::acwing3448::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp1942 行定义.

1942 {
1943 unsigned long a, b;
1944 cin >> a >> b;
1945 for(; a != 0 || b != 0; cin >> a >> b) {
1946 vector<unsigned short> va = vector<unsigned short>();
1947 vector<unsigned short> vb = vector<unsigned short>();
1948 while(a != 0) {
1949 va.push_back(a % 10);
1950 a /= 10;
1951 }
1952 while(b != 0) {
1953 vb.push_back(b % 10);
1954 b /= 10;
1955 }
1956 vector<unsigned short> res;
1957 unsigned short cnt = 0;
1958 unsigned short carry = 0;
1959 for(size_t i = 0; i < max(va.size(), vb.size()); i++) {
1960 unsigned short sum = (i < va.size() ? va[i] : 0) + (i < vb.size() ? vb[i] : 0) + carry;
1961 cnt += sum / 10;
1962 carry = sum / 10;
1963 }
1964 ostringstream ss = ostringstream();
1965 ss << cnt;
1966 cout << ((cnt != 0) ? ss.str() : "No") << " carry operation" << ((cnt <= 1) ? "" : "s") << '.' << endl;
1967 }
1968 return 0;
1969 }

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing3448::TEST ( acwing3448  ,
case1   
)

在文件 acwing408_test.cpp2127 行定义.

2127 {
2128 istringstream in("123 456\n"
2129 "555 555\n"
2130 "123 594\n"
2131 "0 0");
2132 auto out = ostringstream();
2133 main(in, out);
2134 const auto ans = out.str();
2135 ASSERT_EQ("No carry operation.\n"
2136 "3 carry operations.\n"
2137 "1 carry operation.\n",
2138 ans);
2139 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing3448::TEST ( acwing3448  ,
case2   
)

在文件 acwing408_test.cpp2141 行定义.

2141 {
2142 istringstream in("123 456\n"
2143 "555 555\n"
2144 "123 594\n"
2145 "99999 1\n"
2146 "167 33\n"
2147 "5 55\n"
2148 "0 1\n"
2149 "1654 69565\n"
2150 "999999999 999999999\n"
2151 "0 0");
2152 auto out = ostringstream();
2153 main(in, out);
2154 const auto ans = out.str();
2155 ASSERT_EQ("No carry operation.\n"
2156 "3 carry operations.\n"
2157 "1 carry operation.\n"
2158 "5 carry operations.\n"
2159 "2 carry operations.\n"
2160 "1 carry operation.\n"
2161 "No carry operation.\n"
2162 "3 carry operations.\n"
2163 "9 carry operations.\n",
2164 ans);
2165 }

引用了 main().