华东交通大学2017年ACM“双基”程序设计竞赛 1010
Problem Description
定义操作:将数 n 变为 f(n) = floor(sqrt(n))。即对一个数开平方后,再向下取整。
如对 2 进行一次操作,开平方再向下取整, 1.414213562..... = 1 , 即变为了 1 。
现在给出一个数 n,如果能在 5 次操作内把 n 变为 1,则输出操作次数;如果则超过5次输出"QAQ"。
数据范围:
1<= n <= 10^100
如对 2 进行一次操作,开平方再向下取整, 1.414213562..... = 1 , 即变为了 1 。
现在给出一个数 n,如果能在 5 次操作内把 n 变为 1,则输出操作次数;如果则超过5次输出"QAQ"。
数据范围:
1<= n <= 10^100
Input
多组输入,每行输入一个数 n。
Output
每组数据输出要多少次操作,或者输出"QAQ"
Sample Input
233 233333333333333333333333333333333333333333333333333333333
Sample Output
3 QAQ
解法:当然是暴力跑出结果啦
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 string s; 5 while(cin>>s){ 6 int cnt=0; 7 long long n=0; 8 if(s.length()>=11){ 9 cout<<"QAQ"<<endl; 10 }else{ 11 for(int i=0;i<s.length();i++){ 12 n*=10; 13 n+=s[i]-'0'; 14 } 15 if(n<4294967296){ 16 while(n>1){ 17 cnt++; 18 n=sqrt(n); 19 } 20 cout<<cnt<<endl; 21 }else{ 22 cout<<"QAQ"<<endl; 23 } 24 } 25 } 26 }
1 import math 2 for i in range(4011110000,5011110000): 3 num =math.sqrt(math.sqrt(math.sqrt(math.sqrt(math.sqrt(i))))) 4 if num >=2: # 确定第一个因子 5 print(i) 6 break
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~