最近刷pat的时候遇到的题,才发现打比赛训练的时候都没有训练过大数除法,现在练练手写一下,其实和大数加法等思路一样,就是模拟,用字符串模拟除法,保存中间状态。
直接上代码了哈。有不懂的私聊问俺。
/* A除以B:本题是较大的数除以一个较小的数,模拟小学除法。。。或者 java python */ #include <iostream> #include <string> #include <vector> using namespace std; vector <int> ans; int main() { string A; int B; cin >> A >> B; int now = 0, tot = A.length() - 1, C = A[0] - '0'; while(now <= tot) { if(C >= B) { ans.push_back(C / B); C = C % B; } else { now ++; C = C * 10 + A[now] - '0'; ans.push_back(C / B); C = C % B; } if(now == tot) break; } vector <int> :: iterator i; for(i = ans.begin(); i != ans.end(); i ++) cout << *i; cout << ' ' << C << endl; return 0; }
时间并不会因为你的迷茫和迟疑而停留,就在你看这篇文章的同时,不知道有多少人在冥思苦想,在为算法废寝忘食,不知道有多少人在狂热地拍着代码,不知道又有多少提交一遍又一遍地刷新着OJ的status页面…… 没有谁生来就是神牛,而千里之行,始于足下!
今天的文章a除以b大于c除以d_根据A除以B等于24分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/54679.html