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) {
        }
    }
}
目录
相关文章
|
5月前
|
人工智能 自然语言处理 调度
数字人|数字人平台重点推荐与选择指南
数字人企业正引领虚拟与现实融合新潮流。像衍科技、灵眸数字、幻界科技三大标杆,以全栈技术、AI交互与元宇宙布局驱动产业升级,覆盖影视、电商、教育等场景,推动数字人从技术突破迈向规模化应用,开启数字经济新篇章。(238字)
|
数据采集 传感器 存储
数据采集
【6月更文挑战第16天】数据采集。
554 12
|
人工智能 自然语言处理 API
吴恩达开源aisuite:简化AI模型调用的新工具 | AI工具
近日,著名人工智能学者吴恩达教授在推特上宣布了他的最新开源项目——aisuite。这款全新的Python包旨在简化开发者与各大AI模型服务商的集成过程,极大提升了应用开发的效率。aisuite的推出,无疑为人工智能领域的开发者带来了一个强大而便利的工具。
760 5
|
前端开发 应用服务中间件 API
|
网络安全 安全 数据安全/隐私保护
网站认证的类型有哪些?
【6月更文挑战第2天】网站认证的类型有哪些?
388 0
|
存储 安全 C++
C++ 原子变量atomic variable
原子变量是 C++11 引入的一种同步机制,用于多线程环境中的无锁、线程安全操作。其操作不可分割,避免了数据竞争和不一致问题。原子变量位于 `&lt;atomic&gt;` 头文件中,支持多种类型如 `std::atomic&lt;T&gt;` 和特化类型。基本用法包括定义原子变量、加载、存储、交换及比较交换操作。内存顺序(如 `std::memory_order_seq_cst`)用于控制内存访问顺序和可见性,适用于不同场景。原子变量常用于线程安全的计数器和标志位等。
|
存储 JavaScript 安全
JS 监听用户页面访问&页面关闭操作并进行数据上报
该文主要讨论了一个网页安全项目的需求和实现,涉及用户访问和离开页面时的数据报告。需求包括首次进入、刷新、新标签页打开、导航切换以及页面关闭时的数据发送。技术要点包括使用Cookie和SessionStorage存储信息,事件监听以及navigator.sendBeacon方法进行数据发送。实现策略包括轮询检测URL变化和在unload事件中触发页面关闭报告。文章还提到了相关流程图和代码示例,总结中强调了数据上报在用户行为分析中的重要性。
510 3
|
数据采集 存储 人工智能
蚂蚁集团联合上海仁济医院泌尿科发布国内首个临床专科推理数据集:RJUA-QA
详细介绍数据集的构建过程、特点及统计分析,并全面评测了行业和通用大模型在该数据集上的性能,后续团队将持续优化数据集,为人工智能在医疗领域的研究与应用提供有力支持。
蚂蚁集团联合上海仁济医院泌尿科发布国内首个临床专科推理数据集:RJUA-QA
|
缓存 算法 NoSQL
常见限流算法解读
常见限流算法解读

热门文章

最新文章

下一篇
开通oss服务