完全平方数

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

https://leetcode-cn.com/explore/learn/card/queue-stack/217/queue-and-bfs/874/

 

完全平方数

 

 

1、c++

完全平方数

#include "iostream"
#include <queue>
#include <unordered_set>
using namespace std;

class Solution{
        public:
                Solution() {};
                int numSquare(int n){
                        queue<int> q;
                        q.push(n);

                        unordered_set<int> sset;
                        sset.insert(n);
                        int count = 0;
                        while(!q.empty()){
                                cout<<"count:"<<count<<endl;
                                cout<<"q.size():"<<q.size()<<endl;
                                int s = q.size();
                                for(int i = 0; i< s; i++){
                                        int tmp = q.front();
                                        cout<<tmp<<endl;
                                        q.pop();
                                        for(int j = 1; j*j <= tmp; j++){
                                                int sub = tmp - j*j;
                                                cout<<"sub:"<<sub<<"  "<<endl;
                                                if(sub == 0) return count+1;
                                                if(sset.find(sub) == sset.end()){
                                                        sset.insert(sub);
                                                        q.push(sub);
                                                }
                                        }
                                }
                                count++;
                        }
                        return count;
                }
};

int main(){
        Solution solu;
        cout<<solu.numSquare(12)<<endl;
}

View Code

2、c++11编译

g++ -std=c++11 a.cpp

 

3、方法二:拉格朗日四平方和定理

https://zhuanlan.zhihu.com/p/104030654

原文链接: https://www.cnblogs.com/bailuoxi/p/12546173.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    完全平方数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/336889

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午10:54
下一篇 2023年3月1日 下午10:54

相关推荐