基于visual Studio2013解决C语言竞赛题之0413同构数

时间:2024-04-23 13:14:17




基于visual Studio2013解决C语言竞赛题之0413同构数

题目

基于visual Studio2013解决C语言竞赛题之0413同构数

解决代码及点评

该题目与水仙花数类似,只是条件不同,循环还是一样的


/************************************************************************/
/*
13. 一个数恰好等于它的平方数的右端,这个数称为同构数。
如 5 的平方是25, 5是25中的右端的数, 5就是同构数。找出1~1000之间的全部同构数。 */
/************************************************************************/ /************************************************************************/ #include <stdio.h>
#include <stdlib.h>

// 该函数计算num在十进制时有多少位,比如25是两位
int f4131(int num)
{
int count=0;
while(num)
{
count++;
num/=10;
}
return count;
}

// 判断是否同构数
bool f4132(int num)
{
int n=f4131(num);
int times=1;
        // 该循环找出应该对多少取模才能算出右边的值
for(int i=0;i<n;i++)
{
times*=10;
}
        // 进行同构数判断
if ((num*num)%times==num)
{
return true;
}
else return false; }
void main()
{ for(int i=1;i<=1000;i++) // 遍历1到1000
{
if (f4132(i)) // 判断该数是否同构数,如果是,则打印
{
printf("%4d",i);
} }
system("pause");
}

代码下载及其运行

代码下载链接:

http://download.****.net/detail/yincheng01/6640895

解压密码为c.itcast.cn

下载解压后用VS2013打开工程文件

点击 “本地Windows调试器” 执行

基于visual Studio2013解决C语言竞赛题之0413同构数

程序运行结果

基于visual Studio2013解决C语言竞赛题之0413同构数