加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
大数相乘.cpp 1.10 KB
一键复制 编辑 原始数据 按行查看 历史
luo 提交于 2022-05-24 17:15 .
#include <iostream>
#include <string>
using namespace std;
string times628(string& str)
{
string ret(str.length() + 3, 0);
string str628 = "628";
int strL = str.length();
int retL = ret.length();
int c = 0;
for (int k = 2; k >= 0; --k)
for (int i = strL - 1, j = retL + k - 3; i >= 0; --i, --j)
ret[j] += (str[i] - '0') * (str628[k] - '0');
for (int i = retL; i >= 0; --i)
{
ret[i] += c;
c = ret[i] / 10;
ret[i] = ret[i] % 10 + '0';
}
int index = 0;
while (ret[index] == '0') ++index;
return string(ret.begin() + index, ret.end() - 2);
}
int compare(string& a, string& b)
{
if (a.length() != b.length())
return (a.length() > b.length() ? 1 : -1);
else
{
for (int i = 0; i < a.length(); ++i)
if (a[i] == b[i]) continue;
else return (a[i] > b[i] ? 1 : -1);
return 0;
}
}
int main()
{
string n, r;
while (cin >> n >> r)
{
r = times628(r);
if (compare(n, r) == 1) cout << "No" << endl;
else cout << "Yes" << endl;
}
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化