求一道java程序设计题
625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?请编写程序,寻找所有这样的3位数:它的平方的末3位...
625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?
请编写程序,寻找所有这样的3位数:它的平方的末3位是这个数字本身。
输出结果中,从小到大,每个找到的数字占一行。比如那个625就输出为:
625
如果代码能够最优化就好了 展开
请编写程序,寻找所有这样的3位数:它的平方的末3位是这个数字本身。
输出结果中,从小到大,每个找到的数字占一行。比如那个625就输出为:
625
如果代码能够最优化就好了 展开
5个回答
展开全部
楼上几位大侠用的都是纯数字的方法,那小弟我就补充个字符串的方法,Java中String中有好多方法,使用起来非常方便。
但如果楼主想锻炼自己的编程能力及逻辑思维,建议使用楼上的方法。一楼的程序有点小错误, int temp=i*i;当i变大时,i*i肯定会超出int 的最大范围的!
希望对你有帮助!
class practise{
public static void main(String args[]){
String str; //定义一个字符串,去接收i*i;
int x=0;
for(int i=100;i<=999;i++){
str=i*i+""; //将i*i转化成字符串,方便下面的截取;
int y=str.length(); //得到str的长度,方便下面的截取;
x=Integer.parseInt(str.substring(y-3,y)); //截取最后三位,并将其转化成int型,方便下面比较;
if(x==i){
System.out.println(i); //比较,输出;
}
}
}
}
运行结果:376
625
但如果楼主想锻炼自己的编程能力及逻辑思维,建议使用楼上的方法。一楼的程序有点小错误, int temp=i*i;当i变大时,i*i肯定会超出int 的最大范围的!
希望对你有帮助!
class practise{
public static void main(String args[]){
String str; //定义一个字符串,去接收i*i;
int x=0;
for(int i=100;i<=999;i++){
str=i*i+""; //将i*i转化成字符串,方便下面的截取;
int y=str.length(); //得到str的长度,方便下面的截取;
x=Integer.parseInt(str.substring(y-3,y)); //截取最后三位,并将其转化成int型,方便下面比较;
if(x==i){
System.out.println(i); //比较,输出;
}
}
}
}
运行结果:376
625
展开全部
public class main1{
public static void main(String[] args){
int i = 100;
while(i<1000)
{
if(i%10 == 0&&i == (i*i)%1000) {System.out.println(i);i++;}
else if(i%10 == 1&&i == (i*i)%1000){System.out.println(i);i+=4;}
else if(i%10 == 5&&i == (i*i)%1000) {System.out.println(i);i++;}
else if(i%10 == 6&&i == (i*i)%1000) {System.out.println(i);i+=4;}
else i++;
}
}
}
public static void main(String[] args){
int i = 100;
while(i<1000)
{
if(i%10 == 0&&i == (i*i)%1000) {System.out.println(i);i++;}
else if(i%10 == 1&&i == (i*i)%1000){System.out.println(i);i+=4;}
else if(i%10 == 5&&i == (i*i)%1000) {System.out.println(i);i++;}
else if(i%10 == 6&&i == (i*i)%1000) {System.out.println(i);i+=4;}
else i++;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int i;
int p=0;
int four=0;
for(i=100;i<1000;)
{
if(i==(i*i)%1000)
{
printf("%d\n",i);
}
switch(four%4)//因为只有0,1,5,6结尾的时候才可能其末3位是本身
{
case 0:i++;break;
case 1:i=i+4;break;
case 2:i=i+1;break;
case 3:i=i+4;break;
}
four++;
}
}
int main()
{
int i;
int p=0;
int four=0;
for(i=100;i<1000;)
{
if(i==(i*i)%1000)
{
printf("%d\n",i);
}
switch(four%4)//因为只有0,1,5,6结尾的时候才可能其末3位是本身
{
case 0:i++;break;
case 1:i=i+4;break;
case 2:i=i+1;break;
case 3:i=i+4;break;
}
four++;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=100;i<=999;i++){
int temp=i*i;
temp=temp%1000;
if(i==temp)
System.out.println(i);
}
int temp=i*i;
temp=temp%1000;
if(i==temp)
System.out.println(i);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找老师吧,这种题没人有耐性给你做的,好好学习,自己搞定,祝你成功
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询