UVa11549 - Calculator Conundrum (Floyd判圈法)

简介: UVa11549 - Calculator Conundrum (Floyd判圈法)
importjava.io.IOException;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.PrintWriter;
importjava.io.OutputStreamWriter;
importjava.io.StreamTokenizer;
publicclassMain{
publicstaticbooleanDEBUG=false;
publicBufferedReadercin;
publicPrintWritercout;
publicStreamTokenizertokenizer;
publiclongn, k;
publicvoidinit()
    {
try {
if (DEBUG) {
cin=newBufferedReader(newInputStreamReader(
newFileInputStream("d:\\OJ\\uva_in.txt")));
            } else {
cin=newBufferedReader(newInputStreamReader(System.in));
            }
        } catch (IOExceptione) {
        }
cout=newPrintWriter(newOutputStreamWriter(System.out));
tokenizer=newStreamTokenizer(cin);
    }
publicStringnext()
    {
try {
tokenizer.nextToken();
//System.out.println("ttype:" + tokenizer.ttype);if (tokenizer.ttype==StreamTokenizer.TT_EOF)
returnnull;
elseif (tokenizer.ttype==StreamTokenizer.TT_WORD)
returntokenizer.sval;
elseif (tokenizer.ttype==StreamTokenizer.TT_NUMBER) 
returnString.valueOf((int)tokenizer.nval);
        } catch (IOExceptione) {
        }
returnnull;
    }
publicvoidinput()
    {
try {
n=Long.parseLong(next());
k=Long.parseLong(next());
        } catch (Exceptione) {
        }
    }
publicintconvert(longnum)
    {
int[] buf=newint[30];
intlen=0;
longtmp=num*num;
while (tmp!=0) {
buf[len++] = (int)(tmp%10);
tmp/=10;
        }
longtmpn=n;
if (tmpn>len) {
tmpn=len;
        }
intans=0;
for (longi=0; i<tmpn; i++) {
ans=ans*10+buf[--len];
        }
returnans;
    }
publicvoidsolve()
    {
longk1=k, k2=k;
longans=k;
do {
k1=convert(k1);
k2=convert(k2);
if (k2>ans) ans=k2;
k2=convert(k2);
if (k2>ans) ans=k2;
        } while (k1!=k2);
cout.println(ans);
cout.flush();
    }
publicstaticvoidmain(String[] args)
    {
try {
Mainsolver=newMain();
solver.init();
intt=Integer.parseInt(solver.next());
while (t-->0) {
solver.input();
solver.solve();
            }
        } catch (Exceptione) {
        }
    }
}
目录
相关文章
|
11月前
|
算法
uva 11549 CALCULATOR CONUNDRUM
题目链接 刘汝佳算法竞赛经典入门训练指南p42
28 0
HDU-1012,u Calculate e
HDU-1012,u Calculate e
|
人工智能
Kuroni and Impossible Calculation——容斥原理-鸽笼原理-抽屉原理
题目描述 已知一个数组a[n],请计算式子:∏_{1≤i<j≤n}|ai−aj| 的值,其中1<=i,j<=n;我们可以认为,这一式子等价于 |a1−a2|⋅|a1−a3|⋅ … ⋅|a1−an|⋅|a2−a3|⋅|a2−a4|⋅ … ⋅|a2−an|⋅ … ⋅|an−1−an|
114 0
Kuroni and Impossible Calculation——容斥原理-鸽笼原理-抽屉原理
|
C++
蓝桥杯 - C++ calculation
蓝桥杯 - C++ calculation
154 0
|
Java C语言
HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)
HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)
94 0