[PAT解题报告] A除以B (20)

转载 from http://tech-wonderland.net/blog/pat-basic-level-practice-1016-1020-solutions.html

解题思路: 直接模拟草稿纸上的除法计算就行了. 注意几个特殊case, 比如求得的商的首位0输出问题, 4 / 8 应该输出 0, 4, 但是14/8 应该输出1, 6, 而不是01, 6. 下面是可以AC的代码:
#include <iostream>
#include <string>
int gao(const std::string & A, int B, std::string *pstrResult, int *pQuite) {
    int Q;
    int len = A.size();
    int curr = A[0] - '0';
    for(int i = 1; i < len; ++i) {
        Q = curr % B;
        pstrResult->push_back(curr / B + '0');
        curr = Q * 10 + A[i] - '0';
    }
    Q = curr % B;
    pstrResult->push_back(curr / B + '0');
    *pQuite = Q;
    return 0;
}
int main() {
    std::string A;
    int B;
    std::cin >> A >> B;
    std::string strResult;
    int iQuote;
    int iRet = gao(A, B, &strResult, &iQuote);
    if(iRet) {
    }
    if(strResult.size() > 1 && strResult[0] == '0')
        std::cout << strResult.substr(1) << ' ' << iQuote << std::endl;
    else
        std::cout << strResult << ' ' << iQuote << std::endl;
    return 0;
}
全部评论
#include <iostream> #include <string> using namespace std; int main() { string s,c = ""; int n, tmp,res = 0; cin >> s >> n; for (size_t i = 0; i < s.size();i++) { tmp = res * 10 + (s[i] - '0'); res = tmp % n; if (i == 0 && tmp / n == 0)continue; c.append(1, tmp / n + '0'); } cout << c + " " << res << endl; return 0; }
1 回复 分享
发布于 2019-06-24 00:34
import java.util.Scanner; public class Main {     public static void main(String args[]) {         Scanner scanner = new Scanner(System.in);         String A = scanner.next();         int B = scanner.nextInt();         String addString = "";         StringBuffer sb = new StringBuffer();         for (int i = 0; i < A.length(); i++) {             int divideString = Integer.parseInt(addString + A.charAt(i));             if (i == 0 && divideString / B == 0) {             } else {                 sb.append(divideString / B);             }             addString = divideString % B + "";         }         System.out.print(sb.toString() + " " + addString);     } }
点赞 回复 分享
发布于 2018-07-25 16:54
import java.math.BigInteger; import java.util.Scanner; /** * @author DGW-PC * @date 2018年6月3日 */ public class A除以B { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { BigInteger A = new BigInteger(input.next()); BigInteger[] remainder = A.divideAndRemainder(new BigInteger(input.next())); System.out.println(remainder[0]+" "+remainder[1]); } }
点赞 回复 分享
发布于 2018-06-03 00:56
纯C写的。把判我错的那个测试用例在自己电脑上试一下,然后用字符串比对看了看两个的输出结果,是一样的,但是真心不清楚为毛判断我的代码是错的。(不是超时不是编译错误) 自己的电脑是用的TDM_64 #include <stdio.h> int main(int argc, char *argv[]) { int i,j=0,flag=0; char beichushu[1001]; char shang [1001]; int chushu; int shang_=0,yushu=0; scanf("%s %d",beichushu,&chushu); for(i=0;beichushu[i]!='\0';i++) { if((beichushu[i]-48+yushu*10)/chushu+flag) { shang[j++]=(beichushu[i]-48+yushu*10)/chushu+48; flag++; } yushu=(beichushu[i]-48+yushu*10)%chushu; } printf("%s",shang); printf(" %d",yushu); }
点赞 回复 分享
发布于 2015-12-28 20:51

相关推荐

行云流水1971:这份实习简历的优化建议: 结构清晰化:拆分 “校园经历”“实习经历” 板块(当前内容混杂),按 “实习→校园→技能” 逻辑排版,求职意向明确为具体岗位(如 “市场 / 运营实习生”)。 经历具象化:现有描述偏流程,需补充 “动作 + 数据”,比如校园活动 “负责宣传” 可加 “运营公众号发布 5 篇推文,阅读量超 2000+,带动 300 + 人参与”;实习内容补充 “协助完成 XX 任务,效率提升 X%”。 岗位匹配度:锚定目标岗位能力,比如申请运营岗,突出 “内容编辑、活动执行” 相关动作;申请市场岗,强化 “资源对接、数据统计” 细节。 信息精简:删减冗余表述(如重复的 “负责”),用短句分点,比如 “策划校园招聘会:联系 10 + 企业,组织 200 + 学生参与,到场率达 85%”。 技能落地:将 “Office、PS” 绑定经历,比如 “用 Excel 整理活动数据,输出 3 份分析表;用 PS 设计 2 张活动海报”,避免技能单独罗列。 优化后需强化 “经历 - 能力 - 岗位需求” 的关联,让实习 / 校园经历的价值更直观。 若需要进一步优化服务,私信
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务