【无标题】

资源限制

时间限制:1.0s   内存限制:512.0MB

问题描述

  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。

输入格式

  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。

输出格式

  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。

样例输入

3 3
1 2 3
4 5 6
7 8 9

样例输出

1 4 7 8 9 6 3 2 5

样例输入

3 2
1 2
3 4
5 6

样例输出

1 3 5 6 4 2

#include<iostream>
using namespace std;
int main()
{
	int m,n;
	cin>>m>>n;
	int a[m][n],b[m][n];
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
		{
			cin>>a[i][j];
			b[i][j]=0;
		}
	int k=0; 
	int w=0,s=0;
	for(int i=0;i<m*n;i++)
	{
		cout<<a[w][s];
		if(i!=m*n-1)
		cout<<" ";
		b[w][s]=1;
		if(k==0&&b[w+1][s]==0&&w<m-1)
		{
			w++;
			continue;
		}
		
		else if(k==0)
		{
			k=1;
			s++;
			continue;
		}
		if(k==1&&b[w][s+1]==0&&s<n-1)
		{
			s++;
			continue;	
		}
		
		else if(k==1)
		{
			k=2;
			w--;
			continue;
		}
		if(k==2&&b[w-1][s]==0&&w>0)
		{
			w--;
			continue;
		}
		
		else if(k==2)
		{
			k=3;
			s--;
			continue;
		}
		if(k==3&&b[w][s-1]==0&&s>0)
		{
			s--;
			continue;
		}
		
		else if(k==3)
		{
			k=0;
			w++;
			continue;
		}
	}
}

资源限制

时间限制:1.0s   内存限制:512.0MB

问题描述

  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入格式

  输入仅包含两行,每行描述一个矩形。
  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

输出格式

  输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入

1 1 3 3
2 2 4 4

样例输出

1.00

#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
	double x1, x2, x3, x4;
	double y1, y2, y3, y4;
	cin >> x1 >> y1 >> x2 >> y2;
	cin >> x3 >> y3 >> x4 >> y4;
	if (x1 > x2) {
		swap(x1, x2);
	}
	if (x3 > x4) {
		swap(x3, x4);
	}
	if (y1 > y2) {
		swap(y1, y2);
	}
	if (y3 > y4) {
		swap(y3, y4);
	}
	double x = max(x1, x3), X = min(x2, x4);
	double y = max(y1, y3), Y = min(y2, y4);
	double ans = (X - x) * (Y - y);
	if ((X - x < 0) || (Y - y < 0))
	{
		ans = 0;
	}
	printf("%.2f\n", ans);
	return 0;
}

资源限制

时间限制:1.0s   内存限制:512.0MB

问题描述

  求出区间[a,b]中所有整数的质因数分解。

输入格式

  输入两个整数a,b。

输出格式

  每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)

样例输入

3 10

样例输出

3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5

提示

  先筛出所有素数,然后再分解。

数据规模和约定

  2<=a<=b<=10000

#include<iostream>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	for(int i=a;i<=b;i++){
		int n = i; 
		cout<<n<<"=";
		for(int j=2;j*j <= n;j++){
			while(n%j == 0){
				n = n/j;
				cout<<j;
				if(n!=1)  cout<<"*";
			}
		}
		if(n!=1)  cout<<n;
		cout<<endl;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值