|
发表于 2021-1-8 14:40:22
|
显示全部楼层
本楼为最佳答案
- // 输出四位双平方数之和
- #include <stdio.h>
- int main()
- {
- int i, j, k, n, p, qw, bw, sw, gw;
- int sum1 = 0, sum2 = 0;
- int sum = 0;
- printf("请输入需求前几项之和:");
- scanf("%d", &k);
- p = k; // 题目要求计算10次,其实四位数满足条件的只有17个
- for (i = 1000;i <= 9999, p > 0;i++)
- {
- for (j = 32;j * j <= i;j++) // 31的平方小于1000,不满足四位数的条件
- {
- if (i == j * j)
- {
- qw = i / 1000;
- bw = (i - 1000 * qw) / 100;
- sw = (i - 1000 * qw - 100 * bw) / 10;
- gw = i - 1000 * qw - 100 * bw - 10 * sw;
- sum1 = (qw + bw + sw + gw);
- for (n = 1;n <= 6;n++) // 个位、十位、百位、千位都是9,相加也只是36
- {
- if (sum1 == n * n)
- {
- printf("%d\t", i);
- p--;
- sum += i;
- }
- }
- }
- }
- }
- printf("\n");
- printf("四位双平方数前%d项和 = %d\n", k, sum);
- }
复制代码 |
|