-
又一道简单题
- 时间限制: 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; }
NBUT 1647:又一道简单题【模拟】
最新推荐文章于 2020-05-29 08:44:04 发布