1.连续整数固定和问题
题目要求:编写一个程序,找出一个数的全部的连续整数固定和。所谓一个数n的连续整数固定和,就是指存在a1,a2,...an,其中,ai+1比ai大1,使得a1+a2+...+an=n。这样,a1,a2,...,an称为n的一个连续整数固定和。例如27的全部的连续整数固定和有3组:2+3+...+7=27;8+9+10=27;13+14=27。本题就是要找出任意输入的整数n的全部的连续整数固定和。
程序代码:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void cntnsIntSum(int num)//连续整数固定和判断
{
int i,j,sum=0;
for(i=1;i<num;i++)
{
j=i;
while(sum<num)
{
sum=sum+j;
j++;
}
if(sum==num)
printf("%d+...%d=%d ",i,j-1,num);
sum=0;//每次循环结束都需要重新初始化sum
}
}
main()
{
int num;
printf("Please input a number:/n");
scanf("%d",&num);
printf("it can change to:/n");
cntnsIntSum(num);
}
2.表示成两个数的平方和
题目要求:已知一个正整数N,编写一个程序,找出所有满足X*X+Y*Y=N的正整数对X和Y。
程序代码:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void getXY(int num)
{
int i,j;
for(i=1;i<=sqrt(num);i++)
for(j=i;j<=sqrt(num);j++)
{
if(i*i+j*j==num)
printf("%d*%d+%d*%d=%d ",i,i,j,j,num);
}
}
main()
{
int num;
printf("Please input a number:/n");
scanf("%d",&num);
printf("it can change to:/n");
getXY(num);
}
3.具有特殊性质的数
题目要求:有这样一个4位数abcd,它具有这样的性质abcd=(ab+cd)*(ab+cd)。其中,ab和cd为两个2位数,求这个4位数abcd。
程序代码:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void func()
{
int a,b,c,d;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
if(1000*a+100*b+10*c+d==((10*a+b)+(10*c+d))*((10*a+b)+(10*c+d)))
printf("%d%d%d%d ",a,b,c,d);
}
}
main()
{
printf("There are following numbers according with the condition:/n");
func();
}
4.验证角谷猜想
题目要求:角谷猜想的内容为:任意给定一个自然数,若它为偶数则除以2,若它为奇数则乘以3加1,得到一个新的自然数,按照这样的计算方法计算下去,若干次后得到的结果必然为1.编写程序对角谷猜想的正确性加以验证。
程序代码:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void func(int n)
{
int count;
while(n!=1 && count<=1000)
{
if(n%2==0)
{
printf("%d/2=",n);
n=n/2;
printf("%d/n",n);
}
else if(n%2==1)
{
printf("%d*3+1=",n);
n=n*3+1;
printf("%d/n",n);
}
count++;
if(n==1 && count<=1000)
printf("This natural number is according to JiaoGu Guess/n");
}
}
main()
{
int n;
printf("Please input a number to vertify:/n");
scanf("%d",&am
数学趣题二
最新推荐文章于 2025-02-28 15:17:11 发布