zoukankan      html  css  js  c++  java
  • 1001WA

    时间关系只实现了其中一部分的功能  现在的程序可以实现一个大数的平方

      1 #include <stdio.h>
      2 #include <string.h>
      3 void mypower(int num2);
      4 int findflag();
      5 int myflag = 0;
      6 char num1[200];
      7 int num2;
      8 char a[200] = {0};
      9 char b[200] = {0};
     10 int c[200] = {0};
     11 int d[200] = {0};
     12 int main(void)
     13 {
     14     scanf("%s%d",num1,&num2);
     15     myflag = findflag();
     16     mypower(num2);
     17     return 0;
     18 }
     19 
     20 
     21 void mypower(int num2)
     22 {
     23     int i,j,k,s;
     24     for(s = 1;s < num2;s++)
     25     {
     26         memset(c,0,sizeof(c));
     27         if(b[0] == '')
     28         {
     29             for(i = 0;a[i] != '';i++)
     30             {
     31                 b[i] = a[i];
     32             }
     33         }
     34         for(i = 0;a[i] != '';i++)
     35             for(j =0;b[j] != '';j++)
     36             {
     37                 c[i+j] += (a[i] - '0') * (b[j] - '0');
     38 
     39             }
     40         for(k = i+j-1;k > 1;k--)
     41         {
     42             d[k] = (c[k-1] % 10);
     43             c[k-2] += c[k-1] /10;
     44         }
     45         d[0] = (c[0] / 10);
     46         d[1] = (c[0] % 10);
     47         if(d[0] != 0)
     48         {
     49             for(k =0 ;k < i+j;k++)
     50                 b[k] = d[k];
     51         }else
     52         {
     53             for(k =1 ;k < i+j;k++)
     54                 b[k-1] = d[k];
     55         }
     56 
     57     }
     58     myflag *= num2;
     59     if(d[0] != 0)
     60     {
     61         for(s =0;s < myflag;s++)
     62         {
     63             b[i+j-s] = b[i+j-1-s];
     64             b[i+j-1-s] = '.';
     65         }
     66         for(i = 0;i<k+1;i++)
     67         {
     68             if(b[i] == '.')
     69             {
     70                 printf("%c",b[i]);
     71                 continue;
     72             }
     73             printf("%d",b[i]);
     74         }
     75     }else
     76     {
     77         for(s =0;s < myflag;s++)
     78         {
     79             b[i+j-1-s] = b[i+j-2-s];
     80             b[i+j-2-s] = '.';
     81         }
     82         for(i = 0;i<k;i++)
     83         {
     84             if(b[i] == '.')
     85             {
     86                 printf("%c",b[i]);
     87                 continue;
     88             }
     89             printf("%d",b[i]);
     90         }
     91     }
     92 
     93 }
     94 
     95 int findflag()
     96 {
     97     int i,j,flag = 0;
     98     for(i = 0;num1[i] != '';i++)
     99     {
    100         if(num1[i] == '.')
    101         {
    102             flag = i;
    103             continue;
    104         }
    105         a[j++] = num1[i];
    106     }
    107     flag = j - flag;
    108     return flag;
    109 }
    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    函数part1 初始函数
    文件操作 文件修改的两种方式
    文件操作part3 文件内指针的移动
    文件操作part2
    day08作业
    文件操作part1
    字符编码
    ORA-15124 数据库启动阶段报错
    将数据库从普通文件系统迁移到ASM中
    在ASM中移动数据文件
  • 原文地址:https://www.cnblogs.com/ailx10/p/5287352.html
Copyright © 2011-2022 走看看