poj 1047 模拟(含大数乘法)循环数

题意:给定一个不超过60位的数,判断它是否是可循环的。如果输入字符串num的长为n,则判断num*1,num*2,num*3...num*n,如果每次乘法得到的结果都是num的一个循环,则num为循环数。如:

142857 *1 = 142857

142857 *2 = 285714
142857 *3 = 428571
142857 *4 = 571428
142857 *5 = 714285

142857 *6 = 857142

思路:模拟即可,注释有解释。
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define clc(s,t) memset(s,t,sizeof(s))
#define INF 0x3fffffff
#define N 65
char s[N];
int d[100],tmp[100],len;
int test(int x){
    int i,j;
    for(i = x,j = 0;j


你可能感兴趣的:(杂)