社区
C++ 语言
帖子详情
三位数,要求为完全平方数,且有两位数字相同
langqimaohua
2007-06-08 06:34:13
RT,用C++编,怎么弄啊,可以帮帮我吗,谢谢了
...全文
871
9
打赏
收藏
三位数,要求为完全平方数,且有两位数字相同
RT,用C++编,怎么弄啊,可以帮帮我吗,谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
叶落无心
2007-06-09
打赏
举报
回复
修改建议:
#include <math.h>
直接在循环中限制范围,则能减少判断次数,很多次哦
int main()
{
int i, j;
char ss[4];
int upper = sqrt(1000 );
for (i=10; i<upper ; ++i)
{
j = i*i;
sprintf(ss, "%d", j);
if (ss[0] == ss[1] || ss[1] == ss[2] || ss[0]==ss[2] )
printf("%d\n", j);
}
return 0;
}
Vitin
2007-06-09
打赏
举报
回复
赞同LS的方法。
不过,说到效率,它可能会比较慢的。
int upper = sqrt(1000 );
求平方根的话,如果没有优化过,会有许多次计算,会比减少的判断次数(<upper)更多。
当然,它是一个好办法,勿容置疑。
expter
2007-06-08
打赏
举报
回复
哦
Vitin
2007-06-08
打赏
举报
回复
同意coldwindtang(风)。
此外还有两点可以优化一些,for循环里可以改为:
j = i*i;
if (j<=999) // i 从10 开始
{
sprintf(ss, "%d", j);
if (ss[0] == ss[1] || ss[1] == ss[2] || ss[0]==ss[2] )
printf("%d\n", j);
}
else
{
break; // i 是递增的
}
特别是后一点,在数字比较大的时候,优化是明显的。
langqimaohua
2007-06-08
打赏
举报
回复
谢谢啦
langqimaohua
2007-06-08
打赏
举报
回复
你好强
唐巧
2007-06-08
打赏
举报
回复
#include <stdio.h>
int main()
{
int i, j;
char ss[4];
for (i=10; i<100; ++i)
{
j = i*i;
if (j>=100 && j<=999)
{
sprintf(ss, "%d", j);
if (ss[0] == ss[1] || ss[1] == ss[2] || ss[0]==ss[2] )
printf("%d\n", j);
}
}
return 0;
}
/*
输出结果:
100
121
144
225
400
441
484
676
900
*/
langqimaohua
2007-06-08
打赏
举报
回复
能把源代码告告我吗,十分感谢
星羽
2007-06-08
打赏
举报
回复
穷举 - -!
(PAT)统计给定区间内的
三位数
中有
两位
数字
相同
的
完全平方数
(如144、676)的个数
本题
要求
实现一个函数,统计给定区间内的
三位数
中有
两位
数字
相同
的
完全平方数
(如144、676)的个数。 函数接口定义: int search( int n ); 其中传入的参数int n是一个
三位数
的正整数(最高位
数字
非0)。函数search返回[101, n]区间内所有满足条件的数的个数。 裁判测试程序样例: #include <stdio.h> #include <math.h...
编程练习:既是
完全平方数
又有
两位
数字
相同
的
三位数
思路:取得整数的个十百位上的
数字
,有两个相等即可;i的范围可以进一步缩小 //三位整数中,既是
完全平方数
,又有
两位
数字
相同
的数 #include<stdio.h> int main(){ int i,a,b,c,num; num=100; while(num<1000){ for(i=0;i<num;i++){ if(num==i*i){ a=...
【C语言】编写程序,
要求
找出满足下列条件的 3 位数:它是
完全平方数
,又有
两位
数字
相同
。如:144、676。
题目:编写程序,
要求
找出满足下列条件的 3 位数:它是
完全平方数
,又有
两位
数字
相同
。 如:144、676。 思路:求
完全平方数
——运用求根公式,将根相乘与该数比较,如果相等,则是
完全平方数
。有
两位
数字
相同
——求出该
数字
个、十、百位各个
数字
,运用if语句进行判断。 代码: #include<stdio.h> #include<math.h> int f1(int x) { float x1; x1=sqrt(x); if(x1*x1==x) return 1; else
统计给定区间内的
三位数
中至少
两位
数字
相同
的
完全平方数
统计给定区间内的
三位数
中至少
两位
数字
相同
的
完全平方数
(如144,676)的个数,并把这些数列示出来
自定义函数统计给定区间内的
三位数
中有
两位
数字
相同
的
完全平方数
的个数
本题
要求
实现一个函数,统计给定区间内的
三位数
中有
两位
数字
相同
的
完全平方数
(如144、676)的个数。函数原型为:int search( int n );本题引用自PTA,原作者:浙大城市学院张高燕。是一个
三位数
的正整数(最高位
数字
非0)。]区间内所有满足条件的数的个数。
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章