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