解题思路:
对于每个要验证的四位数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 人评分
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:804 |
矩阵加法 (C语言代码)浏览:1768 |
1071题解浏览:585 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:567 |
GC的苦恼 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:812 |
矩阵转置 (C语言代码)浏览:855 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:660 |
马拦过河卒 (C语言代码)浏览:1213 |