• 一元多项式的乘法与加法运算


    description

    设计函数分别求两个一元多项式的乘积与和。

    输入格式:

    输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

    输出格式:

    输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。

    输入样例:

    4 3 4 -5 2 6 1 -2 0
    3 5 20 -7 4 3 1

    输出样例:

    15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

    solution

    #include 
    #include 
    int main(){
    	int a[1005], b[1005], multi[2005], sum[1005], n, m, num1, num2, flag = 0;
    	memset(a, 0, sizeof(a));
    	memset(b, 0, sizeof(b));
    	memset(multi, 0, sizeof(multi));
    	memset(sum, 0, sizeof(sum));
    	scanf("%d", &n);
    	for(int i = 0; i < n; i++){
    		scanf("%d%d", &num1, &num2);
    		a[num2] = num1;
    		sum[num2] += num1;
    	}
    	scanf("%d", &m);
    	for(int i = 0; i < m; i++){
    		scanf("%d%d", &num1, &num2);
    		b[num2] = num1;
    		sum[num2] += num1;
    	}
    	for(int i = 0; i < 1005; i++){
    		for(int j = 0; j < 1005; j++){
    			if(a[i] != 0 && b[j] != 0){
    				multi[i + j] += a[i]*b[j];
    			}
    		}
    	}
    	for(int i = 2004; i >= 0; i--){
    		if(multi[i] != 0) {
    			if(!flag){
    				flag = 1;
    				printf("%d %d", multi[i], i);
    			}
    			else
    				printf(" %d %d", multi[i], i);
    		}
    	}
    	if(!flag) printf("0 0");
    	flag = 0;
    	printf("\n");
    	for(int i = 1004; i >= 0; i--){
    		if(sum[i] != 0) {
    			if(!flag){
    				flag = 1;
    				printf("%d %d", sum[i], i);
    			}
    			else
    				printf(" %d %d", sum[i], i);
    		}
    	}
    	if(!flag) printf("0 0");
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    稍微简化版

    #include 
    #include 
    int main(){
    	int a[1005], b[1005], multi[2005], sum[1005], n, m, num1, num2, flag = 0;
    	for(int i = 0; i < 1005; i++)
    		a[i] = b[i] = sum[i] = 0;	
    	memset(multi, 0, sizeof(multi));
    	scanf("%d", &n);
    	for(int i = 0; i < n; i++){
    		scanf("%d%d", &num1, &num2);
    		a[num2] = num1;
    		sum[num2] += num1;
    	}
    	scanf("%d", &m);
    	for(int i = 0; i < m; i++){
    		scanf("%d%d", &num1, &num2);
    		b[num2] = num1;
    		sum[num2] += num1;
    	}
    	for(int i = 0; i < 1005; i++){
    		for(int j = 0; j < 1005; j++){
    			if(a[i] != 0 && b[j] != 0)	multi[i + j] += a[i]*b[j];
    		}
    	}
    	for(int i = 2004; i >= 0; i--){
    		if(multi[i] != 0) {
    			if(!flag){
    				flag = 1;
    				printf("%d %d", multi[i], i);
    			}
    			else
    				printf(" %d %d", multi[i], i);
    		}
    	}
    	if(!flag) printf("0 0");
    	flag = 0;
    	printf("\n");
    	for(int i = 1004; i >= 0; i--){
    		if(sum[i] != 0) {
    			if(!flag){
    				flag = 1;
    				printf("%d %d", sum[i], i);
    			}
    			else
    				printf(" %d %d", sum[i], i);
    		}
    	}
    	if(!flag) printf("0 0");
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
  • 相关阅读:
    统一网关Gateway
    AWS认证是什么意思?怎么报考?
    RSA 2048位算法的主要参数N,E,P,Q,DP,DQ,Qinv,D分别是什么意思 哪个是通常所说的公钥与私钥 -安全行业基础篇5
    渗透测试与攻防演练之间有什么区别
    Docker 与 K8S学习笔记(二十二)—— 高效使用kubectl的小技巧
    一种高精度紧耦合的双目VI-SLAM算法
    关于seata启动时连接数据库异常,Mysql版本8.0
    Rescue-Prime hash STARK 代码解析
    CINTA 整数与二进制1
    整个文档怎么翻译?这些方法亲测实用
  • 原文地址:https://blog.csdn.net/Moliay/article/details/133915534