`

四方定理代码

    博客分类:
  • C
阅读更多
#include <stdio.h>
#include <math.h>
int mode_1(int n)//开方表达式
{
	if ((int)sqrt(n) * (int)sqrt(n) == n)
	{
		printf("%d * %d = %d \n", (int)sqrt(n), (int)sqrt(n), n);
		return 1;
	}
	else
	{
		return 0;
	}
}

int mode_2(int n)//求方二
{
	int x, y;
	for (x = 1; x < sqrt(n); x++)
		for (y = x; y < sqrt(n); y++)
		{
			if (x * x + y * y == n)
			{
				printf("%d^2 + %d^2 = %d\n", x, y, n);
				return 1;
			}
		}
	return 0;
}

int mode_3(int n)//求方三
{
	int x, y, z;
	for (x = 1; x < sqrt(n); x++)
		for (y = x; y < sqrt(n); y++)
			for (z = y; z < sqrt(n); z++)
			{
				if (x * x + y * y + z * z == n)
				{
					printf("%d^2 + %d^2 + %d^2 = %d\n", x, y, z, n);
					return 1;
				}
			}
	return 0;
}

int mode_4(int n)//求方4
{
	int x, y, z, t;
	for (x = 1; x < sqrt(n); x++)
		for (y = x; y < sqrt(n); y++)
			for (z = y; z < sqrt(n); z++)
				for (t = z; t < sqrt(n); t++)
					if (x * x + y * y + z * z + t * t == n)
					{
						printf("%d^2 + %d^2 + %d^2 + %d^2 = %d\n", x, y, z, t,
							   n);
						return 1;
					}
	return 0;
}

void proveFourSquares(int n)
{
	if (mode_1(n))
		printf("it has verified one squares\n");
	if (mode_2(n))
		printf("it has verified two squares\n");
	if (mode_3(n))
		printf("it has verified three squares\n");
	if (mode_4(n))
		printf("it has verified four squares\n");
}

int main(int argc, char *argv[])
{
	int n;
	printf("please input a natural number\n");
	scanf("%d", &n);
	printf("--------------------------\n");
	proveFourSquares(n);
	return 0;
}

 

分享到:
评论

相关推荐

    097 四方定理 C语言源代码文件

    097 四方定理 C语言源代码文件

    解析四方定理的应用

    上述C++代码就是一个简单的四方定理验证程序。首先,我们来看一下代码的主要部分: 1. `f` 函数是一个递归函数,它的目标是找到一个自然数 `n` 是否可以表示为四个平方数之和。它接收三个参数:`n`(当前处理的数)...

    C语言程序源代码(大集合).rar

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    220个C源代码 初学C语言必备

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    C语言源代码实例.rar

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    蓝桥杯决赛题附答案

    四方定理是数论中的一个著名定理,指出任何自然数都可以表示为最多四个整数平方的和。在编程中,验证这个定理需要高效算法。题目中给出的代码是用于分解自然数的一种方法。`f` 函数的目标是找到一个表示给定数 `n` ...

    蓝桥杯决赛题答案.pdf

    四方定理是数论中的一个重要概念,表明任何自然数都可以表示为最多四个整数平方和的形式。在给定的C++代码中,使用递归函数`f`来寻找这样的分解。代码的关键在于填充缺失的部分: - 填空1:在`f`函数中,当`n`等于0...

    220个C语言程序源代码.zip

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    蓝桥杯决赛题答案.docx

    本次蓝桥杯决赛题答案的分析,将围绕三个核心问题展开:四方定理、加密和公倍数。通过对这些典型问题的解答,参赛者不仅能检验自己的编程能力,还能深入理解相关领域的理论知识。 首先,四方定理是数论中的一个重要...

    220个C语言程序源代码集合.zip

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    2011-2013历届蓝桥杯本科B组决赛试题

    1. **四方定理** 四方定理是数论中的一个重要概念,指出每一个自然数都可以表示为最多4个整数平方的和。在编程中,为了验证这一理论,我们可以设计算法来分解大数。题目中给出的代码是一个递归函数`f`,用于寻找...

    C程序范例宝典(基础代码详解)

    实例141 四方定理 209 实例142 尼科彻斯定理 210 4.5 逻辑推理与判断 211 实例143 魔术师的秘密 211 实例144 婚礼上的谎言 212 实例145 谁讲了真话 213 实例146 黑纸与白纸 215 实例147 判断坏球 ...

    C语言220例从易到难源代码

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    C语言实例解析精粹(第二版) 光盘代码

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归整数四则...

    2011到2014蓝桥杯决赛题

    #### 一、四方定理 **背景知识**: 四方定理是数论中的一个重要结论,它指出任何正整数都可以表示为最多四个整数平方的和。这个定理由约瑟夫·拉格朗日在1770年证明。 **核心知识点**: 1. **递归算法**:通过递归...

    C语言经典源代码实例 数据结构 操作系统 图形等

    097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归...

    C源代码实例集

    075 绘制余弦曲线和直线的迭加 076 计算高次方数的尾数 077 打鱼还是...四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子...

    2011到2013蓝桥杯决赛题

    #### 四方定理 **知识点概述:** 四方定理是数学中的一个有趣定理,它表明任何正整数都可以表示为最多四个整数平方的和。本题考察了学生对该定理的理解以及其实现算法的能力。 **详细解析:** 给定的代码实现了一...

Global site tag (gtag.js) - Google Analytics