正方形顺时针逆时针旋转45度行和列交点的总面积
第二行的0是逆时针旋转,如果是1是顺时针旋转
题目如下:
思路:
#include<stdio.h>
int main()
{
int T,n,d,i,x,y,c,k,s;
scanf("%d",&T);
for(i=1;i<=T;i++){
scanf("%d%d",&n,&d);
for(i=1;i<=n;i++){
scanf("%d",&x);
}
for(i=n;i<=1;i++){
scanf("%d",&y);
}
if(d==0){
s=x*y;
}
}
return 0;
}
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdint>
using namespace std;
#define numtype_t uint64_t
void fakeMul(const vector<numtype_t>& lhs, const vector<numtype_t>& rhs, vector<numtype_t>& out)
{
out.resize(lhs.size() + rhs.size() - 1);
fill(out.begin(), out.end(), 0);
for (int i = 0; i < rhs.size(); ++i)
{
int k = i;
for (int j = 0; j < lhs.size(); ++j)
{
numtype_t mul = rhs[i] * lhs[j];
out[k++] += mul;
}
}
}
void printNum(const vector<numtype_t>& num)
{
for (int i = 0; i < num.size(); ++i)
{
cout << num[i];
if (i != num.size() - 1)cout << " ";
else cout << endl;
}
}
int main()
{
int numTests;
cin >> numTests;
while (numTests--)
{
int n, d;
cin >> n >> d;
vector<numtype_t> num0(n), num1(n);
for (int i = 0; i < n; ++i)
cin >> num0[i];
for (int i = 0; i < n; ++i)
cin >> num1[i];
vector<numtype_t> rowResult, colResult;
if (!d)
{
fakeMul(num0, num1, rowResult);
reverse(num1.begin(), num1.end());
fakeMul(num0, num1, colResult);
}
else
{
fakeMul(num0, num1, colResult);
reverse(num1.begin(), num1.end());
fakeMul(num0, num1, rowResult);
}
printNum(rowResult);
printNum(colResult);
}
return 0;
}
给你写了百分之80了,思路也有了,剩下的自己完成下吧,代码:
#include<stdio.h>
//最大长度
#define N 100
int main()
{
//矩阵
int square[N][N];
//标志位
int falg = 0;
scanf("%d", &falg);
//长度
int endx = 0;
scanf("%d", &endx);
int startx = 0;
scanf("%d", &startx);
int len = endx - startx;
//x和y
int x[N],y[N];
int i,j;
for (i = 0; i < len; i++)
{
scanf("%d", &x[i]);
}
for (i = len-1; i >= 0; i--)
{
scanf("%d", &y[i]);
}
for (i = 0; i < len; i++)
{
for (j = 0; j < len; j++) {
square[i][j] = x[i] * y[j];
}
}
for (i = 0; i < len; i++)
{
for (int j = 0; j < len; j++) {
//测试
printf("%d", square[i][j]);
}
printf("\n");
}
if (falg == 1) {
//输出斜对角
//自己找找规矩写写吧,想不出来了
}
if (falg == 0)
{
}
return 0;
}
效果: