题目链接:
题目大意:给定两个数 第一个是大数 第二个是int 数, 两种运算 / 或 % 求所得的值
题目考点:大数 / 小数
解题思路,模拟除法
题目代码:
View Code
1 // File Name: 10494.c 2 // Author: darkdream 3 // Created Time: 2013年01月28日 星期一 19时07分49秒 4 5 #include6 #include 7 #include 8 #include 9 #include 10 char a[1000];11 long long int n ;12 void change(char a[],int b[])13 { int i ;14 for (i = 0 ;i < strlen(a) ; i++ )15 b[i] = a[i] - '0';16 17 }18 void op1(int b[], int t , long long int n )19 {20 int k = strlen(a);21 long long int temp = b[0];22 23 int i , j = 0 , s[1000], p = 0;24 for (i = 0 ;i < k ; i ++ )25 { 26 if (i >= 1)27 temp = temp *10 + b[i];28 29 if (temp >= n || p)30 { if (temp < n)31 s[j++] = 0 ;32 else 33 {34 s[j++] = temp / n;35 temp = temp % n ;36 p = 1;37 }38 }39 40 41 }42 if (t == 1)43 {44 if (j == 0)45 printf("0");46 else 47 for (i = 0; i < j ; i++)48 printf("%d",s[i]);49 50 }else51 printf("%lld",temp);52 printf("\n");53 54 55 56 57 58 }59 60 int main(){61 while (scanf("%s",a) != EOF)62 {63 char temp[10];64 int b[1000];65 change(a,b);66 long long int ans;67 scanf("%s",temp);68 scanf("%lld",&n);69 if (strchr(temp,'/'))70 op1(b,1,n);71 else 72 op1(b,2,n);73 74 75 76 }77 78 return 0 ;79 }