Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

高精度超时的,要*10+1普通除法计算

Posted by fangyixiang at 2009-04-17 10:30:34 on Problem 2551
/*输入满足要求的 n ,然后 n 的某倍数是一个完全由1组成的数,要求输出这个完全由1组成的数有几位数*/
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
char a[1000000],c[1000000];
int dividor(char* a,int b,char* c)
{
    int i,j,temp=0,n;
    char* s;
    n=strlen(a);
    s=(char*)malloc(sizeof(char)*(n+1));
    for (i=0;a[i]!=0;i++)
   	{
   	    temp=temp*10+a[i]-'0';
   	    s[i]=temp/b+'0';
   	    temp%=b;
    }
    s[i]='\0';
    for (i=0;s[i]=='0'&&s[i]!='\0';i++);
    if (s[i]=='\0')
    {
        c[0]='0';
        c[1]='\0';
    }
    else
    {
        for (j=0;s[i]!='\0';i++,j++)
        	c[j]=s[i];
       	c[j]='\0';
    }
    free(s);
    return temp;
}
int main()
{
    int n,i;
    while(scanf("%d",&n))
    {
       if(n==0) {printf("0\n"); continue;}
       a[0]='1';a[1]='\0';
       for(i=0;;i++)
       {
          if(dividor(a,n,c)==0)
          {
             printf("%d\n",strlen(a));
             break;
          }
          else
          {
              a[i+1]='1';a[i+2]='\0';
          }
       }
    }
    //system("pause");
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator