尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

天梯L1-046 整除光棍

天梯L1-046 整除光棍 这道题我一开始用了stoll--这是处理longlong型将字符转换成数字这个stoll的时间复杂度是On由于我是外面又嵌套个for循环导致如果转换的字符过于大会导致时间复杂度stoll 就On^2-----(n1)*n/2以上是我一开始出错的点让我意识到stoll或是stoi不能乱用以下是使用了大数除法来计算得到结果的大数除法就是模拟了平时我们计算除法所列的竖式优点O(n) 线性时间复杂度一次遍历完成O(1) 额外空间常数空间自动去除前导零使用了yu.empty()----去除的前导零是所得商不会出现0002或是0011等直接得到商1为2或是11#includebits/stdc.h using namespace std; typedef long long ll; int main(){ int x;cinx; if(x1){ cout1 1; return 0; } //得到光棍数num string num1; ll r1; while(r!0){ num1; r(r*101)%x; } //计算s利用大数除法,竖式 ll re0; string yu; for(int i1;num[i]!\0;i){ rere*10num[i]-0; if(rex || !yu.empty()){ yuyuto_string(re/x); rere%x; } } coutyu num.size(); return 0; }
返回列表