PAT 1007 A除以B (大数相除)
发布时间:2020-12-14 02:23:53 所属栏目:大数据 来源:网络整理
导读:题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。 输入描述: 输入在1行中依次给出A和B,中间以1空格分隔。 输出描述: 在1行中依次输出Q和R,中间以1空格分隔。 输入例子: 1234567890
题目描述 输入描述: 输出描述: 输入例子: 输出例子: #include <iostream>
#include <math.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
char szStr[1000] = {0};
char szChushu[10] = {0};
int nData = 0;
int nLenth = 0;
int nYushu = 0;
int nShang = 0;
int p1 = 0;
int number = 0;
/* 输入数据 */
cin >> szStr >> nData;
/* 获得字符串的长度 */
nLenth = strlen(szStr);
/* 求解,思路是6位一个单位区除 */
while(1)
{
szChushu[0] = nYushu + 0x30;
strncpy(szChushu+1,szStr+p1,1);
szChushu[2] = ' ';
number = atoi(szChushu);
nShang = number / nData;
nYushu = number % nData;
/* 当商的第一位是0时,不输出 */
if(p1 != 0 || nShang != 0)
{
cout << nShang;
}
/* 指针后移 */
p1++;
if(p1 >= nLenth)
{
break;
}
}
/* 输出余数 */
cout << " " << nYushu << endl;
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |