首页 > 代码库 > TOJ--1507--大数乘法的初步实现
TOJ--1507--大数乘法的初步实现
Ah 我看来需要重新评估下自己的睡眠要求了 =-=
一张桌子看来还真的很难入眠
好吧 这题真的做了好久 主要第一次接触 大数乘法
但我觉得这题应该是有规律的 就我现在还没找到
我想要是去打表一遍 应该会找到的 懒得去了
因为我的做法一般般吧 有疑问的只要去查下 大数乘法 的版本就好
虽然版本也有很多种 我的是理解起来最简单的吧 就模拟下
touch me
直接上代码了额---------------下次 再也不那么水了
1 // 寻找7 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5 6 int k , m; 7 const int size = 1010; 8 int ch[3]; 9 int temp[size];10 int str[size];11 12 void multiply()13 {14 int len , t , x;15 memset( temp , 0 , sizeof(temp) );16 if(m<10)17 {18 ch[0] = m;19 ch[1] = ch[2] = 0;20 x = 1;21 }22 else if(m>=10&&m<100)23 {24 ch[0] = m/10;25 ch[1] = m%10;26 ch[2] = 0;27 x = 2;28 }29 else30 {31 ch[0] = m/100;32 ch[1] = (m%100)/10;33 ch[2] = (m%100)%10; 34 x = 3;35 }36 temp[0] = 1;37 len = 1;38 for( int n = 1 ; ; n++ )39 {40 memset( str , 0 , sizeof(str) );41 for( int i = 0 ; i<x ; i++ )42 {43 for( int j = 0 ; j<len ; j++ )44 {45 str[i+j+1]+=ch[i]*temp[j];46 }47 }48 for( int i = x+len-1 ; i>=1 ; i-- )49 {50 if( str[i]>=10 )51 {52 str[i-1]+=str[i]/10;53 str[i]%=10;54 }55 }56 if( str[0]!=0 )57 t = 0;58 else59 t = 1;60 int tt = t;61 for( int j = 0 ; t<x+len ; t++ , j++ )62 {63 temp[j] = str[t];64 }65 if( str[x+len-k]==7 )66 {67 cout<<n<<endl;68 break;69 }70 len+=x-tt;71 }72 }73 74 int main()75 {76 while(cin>>k>>m)77 {78 multiply();79 } 80 return 0;81 }
today:
人想要进行改变 实在太难了
短暂的改变固然简单
纠结了一下 算了 就当少赌球 请妹子次饭吧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。