NBUT 1647:又一道简单题【模拟】
2016-03-19 18:40
274 查看
又一道简单题
时间限制: 5000 ms 内存限制: 65535 K问题描述
输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它
变成一个完全平方数(不能把首位修改成 0)。比如 n=7844,有两种方法:3844=62^2和 7744=88^2。
输入
输入第一行为整数 T (1<=T<=1000),即测试数据的组数,以后每行包含一个整数 n (1000<=n<=9999)。
输出
对于每组数据,输出恰好修改一个数字,把 n 变成完全平方数的方案数。
样例输入
2 7844 9121
样例输出
Case 1: 2 Case 2: 0
提示
无
AC-code:
#include<cstdio> #include<cmath> int main() { int T,a,ans,k,i,j,b=1,num; scanf("%d",&T); while(T--) { scanf("%d",&a); printf("Case %d: ",b++); num=0; for(i=1;i<=4;i++) { if(i==1) j=1; else j=0; for(;j<=9;j++) { if(i==1) { ans=j*1000+a%1000; if(j==a/1000) continue; } else if(i==2) { if(j==a/100%10) continue; ans=j*100+a/1000*1000+a%100; } else if(i==3) { if(j==a/10%10) continue; ans=j*10+a/100*100+a%10; } else { if(j==a%10) continue; ans=j+a/10*10; } k=sqrt(ans); if(ans==k*k) num++; } } printf("%d\n",num); } return 0; }
相关文章推荐
- 学习进度条--第三周
- LeetCode002
- 第一个C#程序--简易计算器
- Nyoj 一笔画问题(图论)
- freemarker 为空会报错,该怎么解决?
- java中整型之间的转换
- 《MySchool数据库设计优化》内部测试
- LeetCode001
- ssh localhost失败
- 项目-4求最大公约数
- patchoat相关代码在Android M版中的变化(1)
- Android layout Inflate 性能浅析
- 类似解锁或者支付密码输入框
- Fragment真正意义上的onResume和onPause
- 内存管理之autorelease
- 知识总结: Activity的四种启动模式
- android studio端口占用问题
- 大话设计模式—代理模式
- 关于参数传递的思考
- ASP.NET 身份验证