zoukankan      html  css  js  c++  java
  • uva10106 大数乘

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=1047

    题目大意 :每输入两个数,输出这两个数的积

    题目考点 : 高精度

    解题思路: 根据乘法的性质 高精度模拟

    解题代码

    View Code
     1 // File Name: uva10106.c
     2 // Author: darkdream
     3 // Created Time: 2013年01月25日 星期五 13时18分38秒
     4 
     5 #include<stdio.h>
     6 #include<string.h>
     7 #include<stdlib.h>
     8 #include<time.h>
     9 #include<math.h>
    10 
    11 char a[600];
    12 char b[600];
    13 int  c[600];
    14 int  d[600];
    15 int  e[600];
    16 
    17 void change(char a[],int b[])
    18 {
    19     int i ;
    20     for (i =0 ;i < strlen(a);  i++)
    21       b[strlen(a) - i - 1 ] = a[i] -'0';
    22 
    23 }
    24 void mu()
    25 {  void print();
    26    int i ,j, k ,t ; 
    27    for (i =0 ;i < strlen(a) ;i ++)
    28    {
    29       int s = 0 ;
    30      for (j = 0 ; j < strlen(b) ;j++)
    31       {
    32         t = c[i]*d[j] +s +e[i+j] ;
    33         s = t / 10 ;
    34         e[i+j] = t % 10 ;
    35       }
    36      for (j = i+j  ; j< 550 ; j++)
    37      {
    38        t = e[j] + s;
    39        s = t /10 ;
    40        e[j] = t %10 ;
    41      }
    42     
    43    }
    44 
    45 }
    46 void print()
    47 {
    48  int i ; 
    49  for (i = 550 ;i >= 0 ;i--)
    50      if (e[i] != 0 )
    51          break;
    52  if (i == -1 )
    53      printf("0");
    54 
    55  for (; i >= 0 ; i--)
    56      printf("%d",e[i]);
    57  
    58  printf("\n");
    59 }
    60 int main(){ 
    61     memset(a,0,sizeof(a));
    62     memset(b,0,sizeof(b));
    63     memset(c,0,sizeof(c));
    64     memset(d,0,sizeof(d));
    65     memset(c,0,sizeof(e));
    66     while (gets(a))
    67    {
    68      gets(b);
    69      change(a,c);
    70      change(b,d);
    71      mu();
    72      print();
    73     memset(a,0,sizeof(a));
    74     memset(b,0,sizeof(b));
    75     memset(c,0,sizeof(c));
    76     memset(d,0,sizeof(d));
    77     memset(e,0,sizeof(e));
    78   
    79    }
    80 return 0 ;
    81 }
  • 相关阅读:
    站立会议11(冲刺二)
    站立会议10(冲刺二)
    站立会议09(冲刺二)
    站立会议08(冲刺二)
    每日站立会议(一)
    四则运算--单元测试
    四则运算安卓版
    返回二维数组最大联通子数组的和
    团队项目成员和题目
    第五周学习进度
  • 原文地址:https://www.cnblogs.com/zyue/p/2877261.html
Copyright © 2011-2022 走看看