zoukankan      html  css  js  c++  java
  • 6.5验证四方定理

    四方定理:所有自然数最多只要4个数的平方和就可以表示,编写一个程序验证四方定理、

    注意: sqrt(n)返回的值是浮点数类型,因此需要int的强制类型转换将其取整。

        最后加一个“no”语句,只是为了保证程序的完整性或防止意外的出现。

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    int mode1(int n) {
    	if((int)sqrt(n) * (int)sqrt(n)==n) {
    		cout<<(int)sqrt(n)<<"*"<<(int)sqrt(n)<<"="<<n;
    		return 1;
    	}
    	else return 0;
    }
    
    int mode2(int n) {
    	for(int x=1;x<sqrt(n);x++)
    	for(int y=x;y<sqrt(n);y++) {
    		if(x*x+y*y==n)
    			{
    			cout<<x<<"*"<<x<<"+"<<y<<"*"<<y<<"="<<n;
    			return 1;	
    			}
    	}
    	return 0;
    }
    
    int mode3(int n) {
    	for(int x=1;x<sqrt(n);x++)
    	for(int y=x;y<sqrt(n);y++)
    	for(int z=y;z<sqrt(n);z++) {
    		if(x*x+y*y+z*z==n)
    			{
    			cout<<x<<"*"<<x<<"+"<<y<<"*"<<y<<"+"<<z<<"*"<<z<<"="<<n;
    			return 1;	
    			}
    	}
    	return 0;
    }
    
    int mode4(int n) {
    	for(int x=1;x<sqrt(n);x++)
    	for(int y=x;y<sqrt(n);y++)
    	for(int z=y;z<sqrt(n);z++)
    	for(int t=z;t<sqrt(n);t++) {
    		if(x*x+y*y+z*z+t*t==n)
    			{
    			cout<<x<<"*"<<x<<"+"<<y<<"*"<<y<<"+"<<z<<"*"<<z<<"+"<<t<<"*"<<t<<"="<<n;
    			return 1;	
    			}
    	}
    	return 0;
    }
    
    int main() {
    	int n;
    	cin>>n;
    	if(mode1(n))	cout<<"yes"<<endl;
    	else if(mode2(n))	cout<<"yes"<<endl;
    	else if(mode3(n))	cout<<"yes"<<endl;
    	else if(mode4(n))	cout<<"yes"<<endl;
    	else cout<<"no";
    	return 0;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    强制隐藏android键盘
    百度地图3.7.1和传感器的应用
    百度地图3.7.1获取当前的位置,并自定义自身位置的图标
    百度地图3.7.1的卫星地图,实时交通的改变
    百度地图3.7.1的配置
    RecyclerView的ListView显示效果
    单元测试
    自定义侧滑菜单
    synchronized关键字的用法
    Android 开发中R文件的丢失
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6811798.html
Copyright © 2011-2022 走看看