【C语言训练】求具有abcd=(ab+cd)2性质的四位数 (C语言代码)
作者: Galaxy 发表时间:2021-02-26 01:02:17
解题思路:
对于每个要验证的四位数abcd,我们只需要截出前两个数字ab与后两个数字cd来分别获得两个整数m,n,再将m与n相加,平方,对比原来的数字即可。
注意事项:利用sscanf和sprintf,借助字符串来截获数字。算法相对与模10除10来获得各位数字的算法更加简单。
参考代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#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)