|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- void division ( int * , int , int ) ;
- int cir ( int * ) ;
- _Bool judge ( int * , int , int ) ;
- int main ( void )
- {
- int i = 7 , j , max = 0 , temp , result ;
- int a [ 10000 ] = { 0 } ;
-
- while ( i <= 1000 )
- {
- for ( j = 0 ; j < 10000 ; j ++ )
- {
- a [ j ] = 0 ;
- }
-
- division ( a , i , 1 ) ;
-
- temp = cir ( a ) ;
-
- if ( temp > max )
- {
- result = i ;
- max = temp ;
- }
-
- i ++ ;
- printf ( "%d" , i ) ;
- }
-
- printf ( "%d\n" , result ) ;
-
- /* division ( a , 45 , 1 ) ;
-
- printf ( "%d\n" , cir ( a ) ) ;*/
-
- return 0 ;
- }
- void division ( int *a , int i , int j )//将一个数除数存进A数组
- {
- int count = 0 ;
-
- while ( count <= 10000 )
- {
- while ( j < i )
- {
- j *= 10 ;
- count ++ ;
- }
-
- if ( !( j % i ) )
- {
- a [ count ] = j / i ;
- break ;
- }
- else
- {
- a [ count ] = j / i ;
- j = j % i ;
- }
- }
- }
- int cir ( int *a )//返回循环数
- {
- int i = 1 , j = 2 , k , temp ;
- _Bool flag = 0 ;
-
- k = 9999 ;
-
- while ( a [ k ] == 0 )
- {
- k -- ;
- }
-
- if ( k < 9000 )
- {
- return 0 ;
- }
-
- while ( 1 )
- {
- while ( a [ i ] != a [ j ] )
- {
- j ++ ;
-
- if ( j == 9999 && a [ i ] != a [ j ] )
- {
- i ++ ;
- flag = 1 ;
- j = i + 1 ;
-
- break ;
- }
- }
-
- if ( flag )
- {
- flag = 0 ;
-
- continue ;
- }
-
- k = j - i ;
-
- if ( judge ( a , k , i ) )
- {
- break ;
- }
- else
- {
- j ++ ;
- continue ;
- }
- }
-
- return k ;
- }
- _Bool judge ( int *a , int k , int i )//判断是不是这个循环
- {
- int j , b = i , count = 0 ;
-
- while ( count < 10 )
- {
- j = b + k ;
-
- if ( a [ b ] != a [ j ] )
- {
- return 0 ;
- }
-
- b ++ ;
- count ++ ;
- }
-
- return 1 ;
- }
复制代码
这是我写的代码,但是不知道为什么总是会运行出错,找了好久没找到错误,求大神告知一下我这段代码到底出错在哪里了,谢谢
|
|