大数相乘
来源:互联网 发布:购买域名后如何使用 编辑:程序博客网 时间:2024/05/21 15:42
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 100//将在数组中保存的字符串转成数字存到int数组中void turn(int *a,char *s){ int i; char digit; int len = strlen(s); //将整形数组初始化 for(i = 0; i < N; ++i) *(a + i) = 0; //将读入的字符串逐位存入整型数组 for(i = 0; i < len; ++i) { digit = *(s + i); int temp = digit-'0'; if(temp<0||temp>9) {printf("输入非法");return; } else *(a + len - 1 - i) = digit - '0'; }}//将数组a与数组b逐位相乘以后存入数组cvoid multiplication(int *a,int *b,int *c){ int i,j; for(i = 0; i < 2 * N; ++i) *(c + i) = 0; for(i = 0; i < N; ++i) for(j = 0; j < N; ++j) *(c + i + j) += *(a + i) * *(b + j); for(i = 0; i < 2 * N - 1; ++i) { *(c + i + 1) += *(c + i)/10;//将十位上的数向前进位,并加上原来这个位上的数 *(c + i) = *(c + i)%10; }}int main(){ int a[N],b[N],result[2*N]; char s1[N],s2[N]; int j = 2*N-1; int i; while(1){printf("请输入第一个大数(小于50位)s1=");scanf("%s",s1);printf("\n请输入第二个大数(小于50位)s2=");scanf("%s",s2);turn(a,s1);turn(b,s2);multiplication(a,b,result); while(result[j] == 0){j--;}printf("\ns1*s2=");for(i = j;i >= 0; --i){printf("%d",result[i]);}printf("\n");} return 0;}
0 0
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- php开发之旅 一维数值数组
- 关于C++ const 的全面总结
- JS脚本不能执行
- hbase配置优化
- error: a label can only be part of a statement and a declaration is not a statement
- 大数相乘
- JSON的定义:
- ORACLE RMAN备份及还原
- Word Ladder leetcode
- hadoop大集群实施--比较实用的思路(设备选型、是否使用虚拟机、快速部署安装、自动复制节点等)
- GridView + Gallery 一起使用的demo
- 从最大似然到EM算法浅解
- 协方差特征 image feature 二阶pooling + ECCV12
- BlueTooth: 蓝牙的电源模式