已完成
#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
int main() {
int n;//输入的个数
cin>>n;
LL s1=0,s2=0;
while(n--)
{
int x;
cin>>x;
s1+=x,s2+=x*x;
}
cout<<(s1*s1-s2)/2;
return 0;
}
就给我tm的这么写,tmd就是y总牛逼woc
//这里填你的代码^^
#include <iostream>
using namespace std;
int main()
{
double x;
cin>>x;
double l=-10000,r=10000;
while(r - l > 1e-8)
{
double mid = (l + r)/2;
if(mid * mid *mid >= x) r = mid;
else l = mid;
}
printf("%lf",l);
return 0;
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
using namespace std;
const int N = 30;
int way[N];
int n,m;
void dfs(int u , int start)
{
if (u == m + 1)
{
for(int i = 1 ; i <= m;i++)
{
cout<<way[i]<<' ';
}
cout<<endl;
return;
}
for(int i = start;i <= n;i++)
{
way[u]=i;
dfs(u + 1,i + 1);
way[u]=0;
}
}
int main()
{
cin>>n>>m;
dfs(1,1);
return 0;
}
y神真的是yyds啊
#include<iostream>
using namespace std;
const int N = 10;
bool st[N];
int path[N];
int n;
void dfs(int u)
{
if(u > n)
{
for(int i = 1;i <=n;i++)
{
cout<<path[i]<<' ';
}
cout<<endl;
}
else
{
for(int i = 1;i <= n;i++)
{
if(!st[i])
{
path[u] = i;
st[i] = true;
dfs(u + 1);
st[i] = false;
path[u] = 0;
}
}
}
}
int main()
{
cin>>n;
dfs(1);
return 0;
}
//第一种是数组的解法
#include<iostream>
using namespace std;
int main()
{
int f[46];
int n;
cin>>n;
f[1] = 0;
f[2] = 1;
for(int i = 3;i <= n;i++) f[i] = f[i - 1] + f[i - 2];
for(int i = 1;i <= n;i++) cout<<f[i]<<' ';
cout<<endl;
return 0;
}
//第二种优化后,采用两个变量的解法。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a = 0;
int b = 1;
for(int i = 1;i <= n;i++)
{
cout<<a<<' ';
int c = a+b;
a = b;
b = c;
}
return 0;
}
#include<iostream>
using namespace std;
const int N=16;
int n;
int st[N];//记录所用的数字的一个状态,0表示这个数字还没有进行考虑,2表示这个数字被选中了
//1表示没有选择这个数字
void dfs(int u)
{
if (u > n)
{
for (int i = 1;i <= n;i++)
if(st[i]==1)
cout<< i <<' ';
cout<<endl;
return;
}
st[u] = 2;//2就是表示递归二叉树里这个数字被选中的情况
dfs(u + 1);
st[u] = 0;
st[u] = 1;//没有被选中的情况
dfs(u + 1);
st[u] = 0;//还是恢复原状,表示当前数字没有被选中的情况
}
int main(){
cin>>n;
dfs(1);
return 0;
}