首页 > 编程知识 正文

C语言求平方差,C语言计算平方和

时间:2023-05-05 16:13:50 阅读:183073 作者:997

Problem Description

飞飞特别喜欢平方数,可是他数学并不好,你能帮他计算n与m之间所有平方数之和吗?
提示:若一个整数的开方还是整数,它就是平方数。例如:4、9、16、25是平方数。

Input

 第一行 T 代表数据的组数。

接下来有 T 行,每行两个整数n,m (0 < n, m <= 1000000)

Output

 输出一个整数,代表所求区间内平方数之和。

Example Input 31 43 1017 20 Example Output 5130 之前出的问题是sum未归零,正确的程序如下: 01#include <stdio.h> 02#include <stdlib.h> 03#include <math.h> 04int main() 05{ 06    int n, a, b, t, i, m, sum = 0; 07    scanf("%d", &n); 08    while(n--) 09    { 10        sum = 0; 11        scanf("%d%d", &a, &b); 12        if(a > b) 13        { 14            t = a; a = b; b = t; 15        } 16        for(i = a; i <= b; i++) 17        { 18            m = sqrt(i); 19            if(m * m == i) 20            { 21                sum = sum + i; 22            } 23        } 24        printf("%dn", sum); 25    } 26  27  28    return 0; 29 两种方法,一种是先开方,在平方,若还是原来的数,说明该数是平方数。另一种是循环嵌套,比如要判断i是不是平方数,我们从1到i去找,看看有没有一个数j,使得j*j = i。 01#include <stdio.h> 02#include <stdlib.h> 03#include <math.h> 04int main() 05{ 06    int n, a, b, t, i, j,  sum = 0; 07    scanf("%d", &n); 08    while(n--) 09    { 10        sum = 0; 11        scanf("%d%d", &a, &b); 12        if(a > b) 13        { 14            t = a; a = b; b = t; 15        } 16        for(i = a; i <= b; i++) 17        { 18            for(j = 1; j <= i; j++) 19            { 20                if(j * j == i) 21                { 22                    sum = sum + i; 23                } 24            } 25        } 26        printf("%dn", sum); 27    } 28  29  30    return 0; 31} 加油~!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。