全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 Hadoop论坛
1556 1
2017-03-13

大数据面试题:相乘_大数据

大数据相乘是数据分析师面试中经常考到的,所以小编整理了这个大数据相乘的的思路,下面网友分享的思路。(有不正确的或者疑问的地方请指出~互相进步!)

1. void reserve(char ch[])  

2. {  

3.     int tmp = 0;  

4.     int i ;  

5.     for (i = 0; i < strlen(ch)/2;i++)  

6.     {  

7.         tmp = ch;  

8.         ch = ch[strlen(ch)-i-1];  

9.         ch[strlen(ch)-i-1] = tmp;  

10.     }  

11. }  

12. int main(int argc, char const *argv[])  

13. {  

14.     char data1[] = "99999999436654365436543654365999999999999999999999999999";  

15.     char data2[] = "99999999999999999999999999999999999999999999999999999999";  

16.       reserve(data1);  

17.       reserve(data2);  

18.     char  data3[1000] = {0} ;  

19.     int i,j;  

20.     int multiflag = 0;  

21.     int addflag = 0;  

22.     int n = strlen(data1);  

23.     int m = strlen(data2);  

24.     int tmp2;  

25.     int tmp = 0;  

26.     for (i = 0;i < n;i++)  

27.     {     

28.         multiflag = 0;  

29.         addflag = 0;  

30.         for (j = 0;j < m;j++)  

31.         {  

32.             int tmp1 = (data1-'0')*(data2[j]-'0') + multiflag;  

33.             multiflag = tmp1/10;  

34.             tmp1 %= 10;  

35.             if (data3[i+j] != '\0')  

36.             {  

37.                 tmp2 = (data3[i+j] - '0') +tmp1+addflag;  

38.             }  

39.             else  

40.             {  

41.                tmp2 = tmp1+addflag;  

42.             }  

43.             addflag = tmp2/10;  

44.             data3[i+j] = tmp2%10 + '0';  

45.         }  

46.             data3[i+m] = multiflag+addflag+'0';  

47.     }  

48.     reserve(data3);  

49.     printf("%s\n",data3);  

50.     printf("计算结果长度:%d\n",strlen(data3));  

51.     return 0;  

52. }  

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-3-13 18:34:52
感谢楼主分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群