1017. A除以B (20)
来源:互联网 发布:温州淘宝摄影哪家好 编辑:程序博客网 时间:2024/05/16 10:23
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:123456789050987654321 7输出样例:
17636684150141093474 3
想法是按普通的除法做,不过需要注意中间有余数为0时候和那位数本身是0的时候;
/***和 sum差 difference积 product商 quotient余数reminder被除数dividend除数divisor**/#include <stdio.h>#include <string.h>#define Max 1002int division(char *num,int div,int *rem,int *quo,int *lenrem);int main(){ int i,j; int quo = 0; int div = 0; int lenrem = 0; int rem[Max] = {0}; char num[Max] = {'\0'}; scanf("%s%d",&num,&div); division(num,div,rem,&quo,&lenrem); for(i=0;i<lenrem;i++) { printf("%d",rem[i]); } printf(" %d",quo); return 0;}/********************/int division(char *num,int div,int *rem,int *quo,int *lenrem){ int len = 0; int num1 = 0; int num2 = 0; int test = 0; int i,j; int flag = 0; int rec[Max] = {0}; len = strlen(num); for(i=0;i<len;i++) { rec[num1++] = (int)(num[i]-'0'); //printf("%d",rec[num1-1]); } i = 0; while(1) { test = test*10+rec[i++]; if(rec[0]<7&&flag==0&&len>1) { test = rec[0]*10+rec[1]; flag = 1; i++; } rem[num2++] = test/div; test = test%div; if(i>=len) { *quo = test; *lenrem = num2; break; } } return 0;}
0 0
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- 1017. A除以B (20)
- DataBinding入门完整教程
- ubuntu16.10 AndroidStudio创建Virtual Device问题解决
- JQuery UI入门
- css的div,文本 垂直居中的方法,百分比div垂直居中
- 1016. 部分A+B (15)
- 1017. A除以B (20)
- 『 Jack_a_Lent_Notes』---IIC[ATmega128_24C02]
- 单点更新线段树
- 如何计算一个算法的时间复杂度和空间复杂度
- 第十章Audio引擎
- HDU2199:Can you solve this equation?(数学 + 二分)
- 1018. 锤子剪刀布 (20)
- UVA136 - Ugly Numbers(丑数)
- JWS java web start