勾股定理
题目:
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。
【数据格式】
输入一个整数 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;
}
但是这个方法不完美,假设某本书有一千万页,用这个程序会溢出,不能得到正确的解。