勾股定理&统计数字问题

2016-09-07  本文已影响0人  Super_邓帅

勾股定理

题目:
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。
【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。
例如,输入:
5
程序应该输出:
1
再例如,输入:
100
程序应该输出:
2
再例如,输入:
3
程序应该输出:
0

#include<stdio.h> 
#include<math.h>
int main(){
    int c,i,a;//c代表斜边大小
    int num=0;//满足条件的三角形的个数
    scanf("%d",&c);
    for(i=1;i<c;i++){
        a=sqrt(c*c-i*i); 
        if(i>a)
            break;
        if(a*a+i*i==c*c){
            num++; 
        }
    } 
    printf("%d\n",num);
    return 0;
} 


统计数字问题

统计数字问题。给定一本书,其中包含n页,计算出书的全部页码中用到了多少个数字0…9。

#include<stdio.h>  
int main(){  
    int num[10]={0};  
    int n,a,b;  
    printf("input the n:\n");  
    scanf("%d",&n);  
    for(int i=1;i<=n;i++)  
    {  
        a=b=i;  
        while(a>=10){  
            a=a%10;  
            num[a]++;  
            a=b=b/10;  
        }  
        num[a]++;  
  
    }  
    printf("0~9出现的次数依次为:\n");  
    for(i=0;i<10;i++){  
        printf("%3d",num[i]);  
    }  
    printf("\n");  
    return 0;  
}  

但是这个方法不完美,假设某本书有一千万页,用这个程序会溢出,不能得到正确的解。

上一篇 下一篇

猜你喜欢

热点阅读