您现在的位置是:主页 > news > 临时网站怎么做/网络平台怎么推广
临时网站怎么做/网络平台怎么推广
admin2025/4/20 12:10:01【news】
简介临时网站怎么做,网络平台怎么推广,手机域名网站怎么做,做手机网站多少钱四平方和题目链接 目录问题描述题目解析C代码问题描述 【题目描述】 【输入】 【输出】 【样例输入】 5 12 773535【样例输出】 0 0 1 2 0 2 2 2 1 1 267 838题目解析 枚举a,b,c,da,b,c,da,b,c,d四个数字,同时也要注意优化,这里采用的是四层循环减…
临时网站怎么做,网络平台怎么推广,手机域名网站怎么做,做手机网站多少钱四平方和题目链接 目录问题描述题目解析C代码问题描述
【题目描述】 【输入】 【输出】 【样例输入】
5
12
773535【样例输出】
0 0 1 2
0 2 2 2
1 1 267 838题目解析
枚举a,b,c,da,b,c,da,b,c,d四个数字,同时也要注意优化,这里采用的是四层循环减…
四平方和题目链接
目录
- 问题描述
- 题目解析
- C++代码
问题描述
【题目描述】
【输入】
【输出】
【样例输入】
5
12
773535
【样例输出】
0 0 1 2
0 2 2 2
1 1 267 838
题目解析
枚举a,b,c,da,b,c,da,b,c,d四个数字,同时也要注意优化,这里采用的是四层循环减为双层循环,先枚举c,dc,dc,d两个较大的变量,在cache[c∗c+d∗d]cache[c*c+d*d]cache[c∗c+d∗d]中存入较小数ccc,当再枚举a,ba,ba,b两个较小的变量时,只需要查找cache[N−a∗a−b∗b]cache[N-a*a-b*b]cache[N−a∗a−b∗b]是否存在即可,如果存在说明已经找到了a∗a+b∗b+c∗c+d∗d=Na*a+b*b+c*c+d*d=Na∗a+b∗b+c∗c+d∗d=N等式的解。
C++代码
#include<bits/stdc++.h>
using namespace std;
int N;
map<int,int> cache;
int main()
{scanf("%d",&N);for(int c=0;c*c<=N/2;c++)for(int d=c;c*c+d*d<=N;d++)if(cache.find(c*c+d*d)==cache.end())cache[c*c+d*d] = c;for(int a=0;a*a<=N/4;a++){for(int b=a;a*a+b*b<=N/2;b++){if(cache.find(N-a*a-b*b)!=cache.end()){int c = cache[N-a*a-b*b];int d = int(sqrt(N-a*a-b*b-c*c));printf("%d %d %d %d\n",a,b,c,d);return 0;}}}return 0;
}