请编写一个函数int fun(int x),它的功能是:判断整数x 是否是同构数。若是同构数,函数返回1;否则返回0。

题目:

请编写一个函数int fun(int x),它的功能是:判断整数x 是否是同构数。若是同构数,
函数返回1;否则返回0。所谓”同构数”是指这样的数,它出现在它的平方数的右边。
例如:输入整数5,5 的平方数是25,5 是25 中右侧的数,所以5 是同构数。x 的值由
主函数从键盘读入,要求不大于100。

代码演示:

初次调试

#include <stdio.h>

int fun(int x)
{
	if (x < 100)
	{
		if (x == x * x / 10 || x == x * x % 10||x==x*x%100)
			return 1;
		else
			return 0;
	}
	else 
		printf("input fault\n");
	
	
}


int main()
{
	int x = 0;
	printf("please enter a number:\n");
	scanf("%d", &x);
	printf("x*x=%d\n", x * x);
	printf("return=%d\n", fun(x));
	return 0;
}

稍加改进:

#include <stdio.h>

int fun(int x)
{
	if (x < 100)
	{
		if (x == x * x / 10 || x == x * x % 10 || x == x * x % 100)
			return 1;
		else
			return 0;
	}
	else 
		printf("input fault\n");
	
	
}


int main()
{
	int x = 0;
	printf("please enter a number:\n");
	scanf("%d", &x);
	printf("x*x=%d\n", x * x);
	printf("return=%d\n", fun(x));
	if(fun(x) == 1)
		printf("%d is a isomorphisms\n", x);
	else
		printf("%d not is a isomorphisms\n", x);
	return 0;
}

 

 效果展示:

        初次演示:

 

        改进展示:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这道题要求编写一个函数int fun(int x),它的功能是:判断整数x是否是同数。若是同数,则函数返回1;否则返回0。所谓“同数”是指这样一种数字:它出现在它的平方数的右边。 举个例子:输入整数5,则其平方为25,5出现在25的右边,因此5是同数,函数应该返回1。 如果不理解题目中的“同数”,可以查看相应的解释。 ### 回答2: 题目中要求编写一个函数int fun(int x),用来判断整数x是否是同数。那么什么是同数呢?同数指的是一个数字出现在它的平方数的右边,例如数字5,5的平方数是25,5出现在25的右边,因此5是同数。 现在我们需要编写一个函数判断一个数字是否为同数。首先我们需要利用平方函数来计算x的平方。这个平方可以通过x*x或者pow(x,2)来计算。接下来我们需要将x的平方转换成字符串,方便我们进行判断。在C语言中可以使用sprintf()函数来实现这个操作。 将字符串中最后一个数字与原数字进行比较,如果相同则说明这个数字是同数,返回1,否则返回0。最后我们可以得到如下的代码: int fun(int x){ int square = x * x; //计算x的平方 char str[20]; //定义一个字符串数组 sprintf(str, "%d", square); //将平方数转换成字符串 int len = strlen(str); //计算字符串的长度 if (str[len-1] == x + '0') //比较字符串最后一个数字和原数字 return 1; else return 0; } 这样,我们就编写了一个函数判断一个数字是否为同数。当输入数字5时,函数返回1,因为5的平方是25,5出现在25的右边,满足同数的条件。 如果输入数字6,函数返回0,因为6的平方是36,6并没有出现在36的右边,不满足同数的条件。 ### 回答3: 同数的定义指的是一个数出现在它的平方数的右边。因此,我们可以先对给定的整数进行平方,然后判断平方数的末位数是否等于原数。 为了实现这个函数,我们需要使用以下步骤: 1. 定义一个变量存储平方数,使用x*x计算平方。 2. 定义两个变量存储原数和平方数的末位数字,使用取模操作取得。 3. 判断末位数字是否相等,如果相等,则返回1,表示是同数;否则返回0,表示不是同数。 下面是实现该函数的代码: int fun(int x){ int square = x * x; //平方数 int original = x % 10; //原数的末位数字 int rightmost = square % 10; //平方数的末位数字 if(original == rightmost){ //判断末位数字是否相等 return 1; //是同数 } else{ return 0; //不是同数 } } 例如,如果我们调用fun(5),根据定义,5的平方数为25,末位数字都是5,因此返回1,表示5是同数。再例如,如果我们调用fun(8),8的平方数为64,末位数字分别是8和4,因此返回0,表示8不是同数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值