Galaxy


私信TA

用户名:wkx

访问量:2924

签 名:

差不多得了

等  级
排  名 2857
经  验 2126
参赛次数 0
文章发表 2
年  龄 18
在职情况 学生
学  校 幼儿园肄业
专  业

  自我简介:

解题思路:

对于每个要验证的四位数abcd,我们只需要截出前两个数字ab与后两个数字cd来分别获得两个整数m,n,再将m与n相加,平方,对比原来的数字即可。

注意事项:利用sscanf和sprintf,借助字符串来截获数字。算法相对与模10除10来获得各位数字的算法更加简单。

参考代码:

#include <stdio.h>
int main()
{
	int n = 0,m = 0,i = 0;//n m分别存放要截取的两个数字,i是要验证的四位数
	char s[5] = {0};//创建一个字符串用于存放四位数
	for (i = 1000;i < 10000;i++)
	{
		sprintf(s, "%d", i);//把四位数i写入字符串s中
		sscanf(s, "%2d", &n);//从字符串s拿出前两位数作为n
		sscanf(s + 2, "%2d", &m);//从字符串s拿出后两位数作为m
		if (i == (m + n)*(m + n))//比较 m,n和平方是否等于原数字
			printf("%d ", i);//相等则输出原数字
	}
	return 0;
}
 

0.0分

1 人评分

  评论区

  • «
  • »