您的位置:首页 > 其它

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: