大数开方,大数相乘
来源:互联网 发布:ubuntu下载vim 编辑:程序博客网 时间:2024/05/22 16:39
计算两个很大的数的开方后的乘积
#include <iostream>#include <string>using namespace std;//两个字符串相乘string strMultiply(string str1 , string str2){ string strResult = ""; int len1 = str1.length(); int len2 = str2.length(); int num[500] = {0}; int i = 0, j = 0; for(i = 0; i < len1; i++) { for(j = 0; j < len2; j++) { num[len1-1 - i + len2-1 - j] += (str1[i] - '0')*(str2[j] - '0'); } } for(i = 0; i < len1 + len2; i++) { num[i+1] += num[i] / 10; num[i] = num[i] % 10; } for(i = len1 + len2 - 1; i >= 0 ; i--) { if(0 != num[i]) break; } for(j = i; j >= 0; j--) { strResult += num[j] + '0'; } return strResult;}//str1 * 10^pos后(即在str1后添上pos个0),与str2作比较int compare(string str1, string str2, int pos){ int len1 = str1.length(); int len2 = str2.length(); if(len2 > len1+pos) return 0; if(len2 < len1+pos) return 1; int i = 0; for(i = 0; i < len2; i++) { if(str1[i]-'0' > str2[i]-'0') return 1; if(str1[i]-'0' < str2[i]-'0') return 0; } return 0;}//对大数str开方取整string sqrtLarge(string str){ int len = str.length(); int i = 0; int j = 0; string strResult = ""; string str1 = ""; if(len&1) len=len/2+1; else len=len/2; for(i = 0; i < len; i++) { for(j = 0; j < 10; j++)//枚举当前位从0~9每一个数 { str1 = strResult; str1 += j + '0'; if(1 == compare(strMultiply(str1, str1) , str , 2*(len-i-1)) )//判断当前这个数的平方与str的大小 { //由于str1后少了len/2-i-1个0,所以平方以后少了2*(len/2-i-1)个 strResult += j-1 + '0'; break; } if(9 == j) strResult += '9'; } } return strResult;}int main(){ string str1; string str2; string strResult; cin>>str1>>str2; cout<<strMultiply(sqrtLarge(str1) , sqrtLarge(str2))<<endl; return 0;}
0 0
- 大数开方,大数相乘
- 大数相乘、开方
- 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
- 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
- 蓝桥杯PREV-34(数论+大数相乘大数开方模板)
- 大数开方
- 大数开方
- 大数开方
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- PAT B1010. 一元多项式求导 (25)
- android 彻底关闭应用程序
- Atitit 图像处理之编程之类库调用的接口api cli gui ws rest attilax大总结.docx
- BZOJ 1821 Group 部落划分 Group【二分+并查集】
- 详解 Java“一次编译,到处执行”的跨平台功能
- 大数开方,大数相乘
- WordPress企业建站心得
- Java多线程-工具篇-BlockingQueue
- Windows下Nginx的安装与配置
- integer对应的是resultType,不是resultMap
- HDU1262:寻找素数对(简单数论)
- 51Nod - 1116 枚举 + 模拟
- 关于android某些手机java.lang.UnsatisfiedLinkError: No implementation found for ......的问题
- React Native自定义带返回按钮的标题栏组件