求高人给我此题C语言代码

问题描述:

求高人给我此题C语言代码
第三次基础代码练习
二进制除法 奇怪的函数 最小函数值 矩阵乘法
源文件名称 binary.(pas/c/cpp) xx.(pas/c/cpp) minval.(pas/c/cpp) matrix.(pas/c/cpp)
输入文件名 binary.in xx.in minval.in matrix.in
输出文件名 binary.out xx.out minval.out matrix.out
时间限制 1秒 1秒 1秒 1秒
内存限制 32M 32M 32M 32M
测试点 10个 10个 10个 10个
分值 100分 100分 100分 100分
Problem 1 :binary
二进制除法
二进制数n mod m的结果是多少?
输入数据
第一行输入一个二进制数n.
第二行输入一个二进制数m.
输出数据
输出n mod m的结果.
输入样例
1010101010
111000
输出样例
1010
时间限制
各测试点1秒
内存限制
你的程序将被分配32MB的运行空间
数据规模
n的长度(二进制数的位数)
1个回答 分类:综合 2014-09-17

问题解答:

我来补答
我晕 你贴的太乱了.
再问: 一共4题; 二进制除法 奇怪的函数 最小函数值 矩阵乘法
再答: #include #include #include #include void printResult(char *p) { int i = 0; for(;i= start;pPos --,qPos --) { int result = p[pPos] + carry - q[qPos]; if (result >= 0) { p[pPos] = result + '0'; carry = 0; } else if(result == -2){ p[pPos] = '0'; carry = -1; } else if(result == -1){ p[pPos] = '1'; carry = -1; } } if(carry != 0) { p[pPos] = '0'; } return 0; } int compare(char *p,int start,char *q) { int result = 0; int pPos = start; int qPos = 0; if ((start + strlen(q)) > strlen(p)) { return -2; } if(p[start -1] == '1') { return 1; } else { } for(; qPos < strlen(q); pPos ++,qPos ++) { if(p[pPos] < q[qPos]) { result = -1; break; } else if(p[pPos] > q[pPos]) { result = 1; break; } } return result; } int div(char *p,int start,char *q) { int result = 0; result = compare(p,start,q); if (result < 0) { return result; } minus(p,start,q); return result; } int solve(char *p,char *q) { int pos = 0; while(true) { int result = -1; if ((result = div(p,pos,q)) == -2) { break; } pos ++; } return 0; } 另外请参考 http://www.cppblog.com/ccl0326/archive/2009/07/31/91792.html
 
 
展开全文阅读
剩余:2000