以下是《基础题目集合》的下半部分,4-7到4-12的题目和源代码,如果大家有好的思路和想法,欢迎赐教。
/*
4-7 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
*/
#include <stdio.h>
#include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i,cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
// printf("%d\n",i);
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
//看清楚题目:至少两位数字相同
int IsTheNumber(const int N){
int num[10]={0},i,j;
int n=(int)sqrt(N);
int NNum=n*n;
int flag=0;
if(NNum==N){
while(NNum>0){
for(i=0;i<=9;i++){
if(NNum%10==i)
num[i]++;
if(num[i]==2)
flag=1;
}
NNum=NNum/10;
}
}
//不要在if的外面判断num[i]==2,不同的编译器,程序执行的次序的问题,不同的编译器,编译的结果可能不同
return flag;
}
/*
4-8 简单阶乘计算 (10分)
本题要求实现一个计算非负整数阶乘的