C语言实现大数据除法
2016-03-07 19:21
267 查看
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
代码实现如下
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
代码实现如下
#include "stdio.h" #include "stdlib.h" #include "string.h" #define MaxSize 1000 void main() { char a[MaxSize]; int b[MaxSize]; int c[MaxSize]; int i; int n; int x=0; int lena=0; int lenc=1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); scanf("%s",a); scanf("%d",&n); for(i=0;i<strlen(a);i++) { b[i+1]=a[i]-'0'; } lena=strlen(a); for(i=1;i<=lena;i++) { c[i]=(x*10+b[i])/n; x=(x*10+b[i])%n; } while (c[lenc]==0&&lenc<lena) { lenc++; } c[0]=lena-lenc+1; for(i=1;i<=c[0];i++) { c[i]=c[lenc]; lenc++; } for(i=1;i<=c[0];i++) { printf("%d",c[i]); } printf(" %d",x); system("pause"); }
运行效果
相关文章推荐
- C++内存布局(下)
- c++编译器对多态的实现原理总结
- YTU 2425: C语言习题 输出月份
- c语言技巧
- YTU 2420: C语言习题 不等长字符串排序
- YTU 2419: C语言习题 等长字符串排序
- C++关键字之:explicit
- YTU 2424: C语言习题 字符串比较
- C++ Builder 中去除字符串中的指定字符
- YTU 2417: C语言习题 字符串长度
- C++字符串学习(二)
- c++,dll后缀的控件调用主程序本身的函数方法
- YTU 2429: C语言习题 学生成绩输入和输出
- C++风格的注释
- C语言-基础
- c++ 版本 opencv 读取视频
- 关于C++泛型及C++高效迭代开发的思考
- [原创]配置Dev c++热键实现快速注释
- 面试经验(妙计旅行:C++算法工程师)
- 最长递增子序列问题