程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 2117 (模擬除法運算)

hdu 2117 (模擬除法運算)

編輯:C++入門知識

/*

 

 

 

模擬除法,注意不能被除時,加0的次數。。

其實這道題n的范圍不夠大,可以對n,m都擴

大10^7倍,然否按照int64來處理就可以了,

但為了練練手,自己按模擬寫的。。

還有注意n==1的情況

 


2013/04/22-08:45

*/

 

 

[cpp]
#include"stdio.h"  
typedef __int64 int64; 
int main() 

    int i,j,k; 
    int a[100005]; 
    int n,m; 
    int t; 
    while(scanf("%d%d",&n,&m)!=-1) 
    { 
        if(n==1) 
        { 
            printf("0\n"); 
            continue; 
        } 
        i=1; 
        t=1; 
        while(i<=m+1) 
        {            
            while(t<n&&t!=0) 
            { 
                t*=10; 
                if(t>=10&&t<n)//可能需要連續多次加0  
                { 
                    a[i++]=0; 
                } 
            } 
            if(t!=0)//這裡要分開。  
            { 
                a[i++]=t/n; 
                t=t%n; 
            } 
            else 
            { 
                a[i++]=0; 
            } 
        } 
        printf("%d\n",a[m]); 
    } 
    return 0; 

#include"stdio.h"
typedef __int64 int64;
int main()
{
 int i,j,k;
 int a[100005];
 int n,m;
 int t;
 while(scanf("%d%d",&n,&m)!=-1)
 {
  if(n==1)
  {
   printf("0\n");
   continue;
  }
  i=1;
  t=1;
  while(i<=m+1)
  {   
   while(t<n&&t!=0)
   {
    t*=10;
    if(t>=10&&t<n)//可能需要連續多次加0
    {
     a[i++]=0;
    }
   }
   if(t!=0)//這裡要分開。
   {
    a[i++]=t/n;
    t=t%n;
   }
   else
   {
    a[i++]=0;
   }
  }
  printf("%d\n",a[m]);
 }
 return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved