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

溢出了

Posted by tmpbt at 2005-01-19 22:21:15 on Problem 2115
In Reply To:我也使用欧几里德扩展算法做得,到底错在哪里?都快没信心了! Posted by:tide713 at 2004-12-03 12:58:43
> #include<stdio.h>
> #include<iostream.h>
> #include<math.h>
> int euclid(int a,int b)
> {
>    if (b==0) return a;
>       else return(euclid(b,a%b));
>    }
> int ext_euclid(int a,int b,int &x,int &y)
> {
>    int t,d;
>    if (b==0) {x=1;y=0;return a;}
>    d=ext_euclid(b,a %b,x,y);
>    t=x;
>    x=y;
>    y=t-a/b*y;
>    return d;
> }
> void modular_linear_equation_solver(int a,int b,int n)
> {
>    int e,i,d;
>    int x,y;
>    int min,k;
>    d=ext_euclid(a,n,x,y);
>    if (b%d>0) cout <<"FOREVER\n";
>       else
> 	  {     min=0xfffffff;
> 			e=(x*(b/d))%n;
>             for (i=0;i<d;i++)  
> 			{  k=((e+i*(n/d))%n); 
> 				if (k>=0&&k<min)
> 					min=k;
> 
> 			}
> 			cout <<min<<'\n';
>             }
>    }
> int  main()
> {   int a,b,c,d,i,m;
>     while(1)
> 	{   
>         cin>>a>>b>>c>>d;
> 		if(a==0&&b==0&&c==0&&d==0)
> 			break;
> 	    m=1;
> 	    if(d==0)
> 		     m=1;
> 	    else
> 		    for(i=1;i<=d;i++)
> 		      m*=2;   
> 		modular_linear_equation_solver(c,b-a,m);
> 	}
> 	return 0;
> }

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