青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 99,  comments - 8,  trackbacks - 0

//思路: 大數問題的處理,通常都是以字符串的形式讀入,再將字符轉化為數字進行處理
//因為除法運算的實質是:被除數能夠減去除數的多少倍;以7546 / 23 為例
//  開始時:7546 - 23  的 100倍可以減 3 次 等于 646 ;所以商增加 300
//           646 - 23  的 10 倍 可以減 2 次 等于 186 ;所以商增加 20
//           186 -  23  的 1 倍  可以減 8 次 等于 2;  所以商增加 8
//所以商最終為  328
//所以本題的關鍵是寫一個減法算法
  1
  2#include <stdio.h>
  3#include <stdlib.h>
  4#include <string.h>
  5#define MAXSIZE 101
  6//減法操作函數:return -1時商為0;return 0時商為1;
  7//當被除數比除數大時,兩數相減,結果放在a1中,返回結果的長度; 
  8int subtract (int a1[MAXSIZE], int a2[MAXSIZE], int len1, int len2) 
  9{
 10    if ( len1 < len2 )
 11       return -1;
 12    
 13    //經典算法:逆置后如何判斷2個數的大小   
 14    if ( len1 == len2)
 15    {
 16         bool tag = false;
 17         for (int i = len1 - 1; i >= 0; i --)
 18         {
 19             if ( a1[i] > a2[i])      //被除數更大 
 20                tag = true;
 21                else if ( a1[i] < a2[i])   //被除數小 
 22                {
 23                    if ( !tag )
 24                    return -1;
 25                }

 26         }

 27    }

 28    
 29    //被除數更大時:做減法運算 ,并且得到a1新的長度 
 30    for (int i = 0; i < len1; i++)
 31    
 32        a1[i]-=a2[i];
 33        if ( a1[i] < 0 )
 34        {
 35             a1[i] += 10;
 36             a1[i+1--;
 37        }
  
 38    }
 
 39    
 40    for (int i = len1 - 1; i >= 0; i--)
 41         if (a1[i])
 42         return i + 1;
 43         
 44    return 0;//巧妙之處:被除數和除數相等的時候,a1[]中為0   
 45}

 46
 47int main ()
 48{
 49    int n;
 50    char line1[MAXSIZE];//被除數 
 51    char line2[MAXSIZE];//除數 
 52    int a1[MAXSIZE];
 53    int a2[MAXSIZE];
 54    int result[MAXSIZE]; 
 55    int len1, len2;
 56    
 57    while ( scanf ("%d"&n) != EOF )
 58    {
 59        //一共有n組測試數據 
 60        for (int i = 0; i < n; i ++ )
 61        {
 62            scanf ("%s%s", line1, line2);
 63
 64            len1 = strlen (line1);
 65            len2 = strlen (line2);
 66            memset ( a1, 0, sizeof(a1) );
 67            memset ( a2, 0, sizeof(a2) );
 68            memset ( result, 0, sizeof(result));
 69            
 70            //將字符轉化為數字存儲
 71            int j = 0;
 72            for (int i = len1 - 1; i >= 0; i--)
 73                a1[j++] = line1[i] - '0';
 74            int k = 0;
 75            for (int i = len2 - 1; i >= 0; i--)
 76                a2[k++] = line2[i] - '0';
 77            
 78            //調用函數進行減法操作運算
 79            //相減一次后得到新的a1的 
 80            len1 = subtract (a1, a2, len1, len2); 
 81            
 82            if ( len1 == -1)
 83            {
 84                printf( "%d\n", 0);
 85                continue;
 86            } 
 87            
 88            if (len1 == 0)
 89            {
 90                printf ("%d\n",1);
 91                continue;
 92            }
 93            
 94            //減一次,商加1
 95            result[0] ++;
 96            
 97            //nTimes 確定補 0 的個數,使除數和被除數一樣的長 
 98            int nTimes = len1 - len2;
 99            if ( nTimes < 0)
100                goto Outputresult;
101            
102            //確定如何向除數a2 中補0,同時改變a2
103            for (int i = len1 - 1; i >= 0; i--)
104            {
105                if ( i >= nTimes)
106                    a2[i] = a2[i - nTimes];  
107                else
108                    a2[i] = 0;
109            } 
110            len2 = len1;
111            
112            //核心算法:難點:確定每次補0 后可以減多少次
113            for (int j = 0; j <= nTimes; j++)
114            {
115                int temp;
116                while ( ( temp = subtract (a1, a2 + j, len1, len2 - j ) ) >= 0 )
117                {
118                    len1 = temp;
119                    result[nTimes - j]++;
120                }
121            }
122            
123Outputresult:
124             //商值的處理 
125            for (int i = 0; i < MAXSIZE; i++)
126            {
127                if (result[i] >= 10 )
128                {
129                    result[i + 1] += result[i] / 10;
130                    result[i] = result[i] %10;
131                }
132            }
133            
134            //輸出處理 
135            bool target = false;
136            for (int i = MAXSIZE - 1; i >= 0; i--)
137            {
138                if (target)
139                    printf ("%d", result[i]);
140                else if ( result[i] )
141                {
142                    printf("%d", result[i]);
143                    target = true;
144                }
145                
146            }     
147            printf ("\n");        
148        }   
149    }

150    return 0;
151}
 
152
posted on 2010-08-09 13:11 雪黛依夢 閱讀(1366) 評論(0)  編輯 收藏 引用 所屬分類: 大數
<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费看的黄色欧美网站| 欧美一区二区三区在线观看| 欧美国产激情| 久久精品国产清自在天天线| 午夜精品福利视频| 亚洲一区二区日本| 亚洲精品日韩一| 欧美成人高清视频| 亚洲国产精品视频一区| 久久综合九色九九| 久久视频一区二区| 亚洲黑丝一区二区| 亚洲影院高清在线| 久久网站免费| 欧美婷婷久久| 国产一区二区三区免费观看 | 在线观看欧美日韩| 久久综合色一综合色88| 免费欧美视频| 国产精品乱子久久久久| 国产精品丝袜白浆摸在线| 国产亚洲精品一区二555| 樱桃国产成人精品视频| 日韩亚洲欧美成人| 亚洲欧美日韩一区二区三区在线观看| 久久9热精品视频| 另类图片国产| 一本色道久久综合亚洲精品小说 | 亚洲人成亚洲人成在线观看| 一本色道久久| 久久久另类综合| 99国产精品久久久久久久| 久久爱www.| 欧美午夜美女看片| 尤物yw午夜国产精品视频明星| 亚洲精品一二三| 欧美一区二区三区免费看| 麻豆精品在线观看| 亚洲人精品午夜| 久久精品成人一区二区三区| 欧美视频一区二区三区在线观看 | 亚洲精品五月天| 久久精品国产69国产精品亚洲 | 欧美精品久久久久久久久老牛影院 | 亚洲人成久久| 久久久一区二区三区| 一本色道久久加勒比88综合| 久久中文精品| 伊人久久大香线蕉综合热线| 午夜国产欧美理论在线播放 | 久久成人免费电影| 一区二区三区四区国产精品| 欧美精品二区三区四区免费看视频| 国产综合欧美在线看| 欧美在线免费视频| 在线综合亚洲| 国产精品成人国产乱一区| 一片黄亚洲嫩模| 亚洲人成绝费网站色www| 欧美成ee人免费视频| 136国产福利精品导航网址应用| 欧美一区1区三区3区公司| 一本色道88久久加勒比精品| 欧美理论在线播放| 亚洲精品一区二| 亚洲国产毛片完整版| 裸体丰满少妇做受久久99精品| 狠狠色狠狠色综合日日五| 久久久久.com| 久久久久久久久久久一区| 亚洲春色另类小说| 亚洲东热激情| 欧美顶级少妇做爰| 亚洲精品视频中文字幕| 亚洲精品一区中文| 国产精品黄色在线观看| 欧美在线观看视频在线 | 欧美日韩国产综合视频在线观看中文| 亚洲精品一区二区三区av| 亚洲精品视频一区二区三区| 国产精品美女久久久久久2018| 欧美影院成年免费版| 久久精品视频va| 亚洲国产美女久久久久| 亚洲国产一二三| 国产精品麻豆成人av电影艾秋| 亚洲在线视频免费观看| 性做久久久久久久免费看| 激情综合久久| 亚洲精品自在久久| 国产视频精品网| 欧美黄色免费| 国产精品理论片| 蜜桃av噜噜一区二区三区| 欧美精彩视频一区二区三区| 亚洲图片欧美日产| 久久黄色网页| 一区二区三区四区五区在线| 欧美一区亚洲二区| 亚洲精品色婷婷福利天堂| 亚洲综合视频网| 欧美大片免费观看| 亚洲在线观看视频| 蜜桃av综合| 性欧美办公室18xxxxhd| 免费视频一区| 欧美在线观看一区二区三区| 欧美成年人视频网站| 欧美一区二区高清在线观看| 欧美+亚洲+精品+三区| 欧美一区二区三区久久精品| 欧美激情亚洲自拍| 免费h精品视频在线播放| 国产精品国产成人国产三级| 亚洲大片免费看| 国产最新精品精品你懂的| 一区二区高清视频在线观看| 亚洲激情六月丁香| 久久国产一区| 久久精品在线播放| 国产精品每日更新在线播放网址| 亚洲国产精品va在线观看黑人| 国内精品久久久久影院色| 日韩香蕉视频| 亚洲精品一区二区三| 毛片精品免费在线观看| 久久久人成影片一区二区三区观看 | 亚洲黄色在线观看| 怡红院精品视频| 欧美一区二区三区四区在线观看地址| 一区二区三区久久网| 欧美成人69| 久久久久欧美精品| 国产日韩精品一区二区浪潮av| 一区二区三区.www| 中文亚洲免费| 国产精品v欧美精品v日韩| 亚洲黄色尤物视频| 亚洲精品久久久久久久久久久久| 久久久亚洲一区| 欧美sm视频| 亚洲激情黄色| 欧美精品1区2区| 一本色道精品久久一区二区三区| 亚洲午夜性刺激影院| 欧美日韩亚洲视频| 亚洲美女福利视频网站| 在线亚洲国产精品网站| 欧美日韩免费一区二区三区视频| 亚洲精品免费观看| 亚洲手机视频| 国产精品系列在线| 久久精品国产99国产精品澳门| 麻豆精品网站| 99热精品在线观看| 国产精品第一页第二页第三页| 亚洲午夜精品久久久久久浪潮| 欧美在线视频a| 在线观看久久av| 欧美极品aⅴ影院| 亚洲性视频网址| 久久蜜桃精品| 日韩一级在线| 国产欧美一区二区视频| 久久久久一区二区三区| 亚洲国产合集| 国产九色精品成人porny| 午夜伦理片一区| 欧美v国产在线一区二区三区| 亚洲精品美女久久7777777| 欧美日韩免费精品| 久久精品水蜜桃av综合天堂| 欧美激情按摩在线| 亚洲欧美国产va在线影院| 国产视频久久网| 欧美国产精品一区| 亚洲免费视频网站| 亚洲福利视频网站| 性欧美长视频| 亚洲精品免费网站| 国产毛片精品国产一区二区三区| 久久影视三级福利片| 亚洲一区精品在线| 亚洲国产成人在线播放| 久久九九国产精品| 亚洲视频在线观看| 亚洲国产成人精品女人久久久| 国产精品劲爆视频| 欧美黄色免费| 久久久久网址| 欧美一区二区免费视频| 99热免费精品| 亚洲成色最大综合在线| 久久gogo国模裸体人体| 一本色道久久综合| 亚洲人永久免费| 黄色亚洲免费| 国产日韩欧美亚洲| 国产精品视频yy9299一区| 欧美日韩国产区一|