题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。
输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
C代码实现:
#include<stdio.h>
#include<string.h>
int main(){
char A[1000];
int B;
int R = 0,Q;
scanf("%s %d\n", &A, &B);
for(int i = 0;i < strlen(A);i++){
Q = (R * 10 + A[i] - '0') / B;//手写除法实现,第一次接触还有点懵
if(!(strlen(A)>1 && i == 0 && Q == 0))
printf("%d",Q);
R = (R * 10 + A[i] - '0') % B;
}
printf(" %d",R);
return 0;
}
说实话,刚开始在牛客网上刷题一点头绪都没有,在网上找别人的博客参考着写的,甚至很多都是原封不动抄过来的,但随着一遍遍敲代码,慢慢的也摸索到了一点门路,相信会一步步变好。欢迎大家共同讨论,一起进步。
人生如一场修行,得意时,一日看尽长安花,艰难时,潦倒新停浊酒杯,但生命的跋涉不能回头,哪怕畏途巉岩不可攀,也要会当凌绝顶,哪怕无人会登临意,也要猛志固常在,从经典中汲取九万里风鹏正举的力量,历练也无风雨也无晴的豁然,待到重阳日,我们还来就菊花。
--撒贝宁
写代码也要陶冶情操啊!!!