ny-336-D的小L

D的小L

时间限制: 4000 ms  |  内存限制: 65535 KB
难度: 2
描述

      一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡出了个题目想难倒匡匡(小L很D吧 ),有一个数n(0<n<10),写出1到n的全排列,这时匡匡有点囧了 ,,,聪明的你能帮匡匡解围吗?
输入
第一行输入一个数N(0<N<10),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个整数x(0<x<10)
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从小到大排列,组合之间按字典序排列。
样例输入
2
2
3
样例输出
12
21
123
132
213
231
312
321
#include<iostream>
#include<algorithm>
using namespace std;
void permutation(string s)
{
    do
    {
        cout<<s<<endl;
    }while(next_permutation(s.begin(),s.end()));
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        string a;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            a+=i+'0';
        }
        permutation(a);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package work; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class CyrusBeckAlgorithmApplet extends Applet { private static final long serialVersionUID = 1L; private Point2D.Double[] clipWindow; private Point2D.Double[][] lines; private double[][] vectors; private double[] p1, p2, D; @Override public void init() { clipWindow = new Point2D.Double[3]; clipWindow[0] = new Point2D.Double(200, 275); clipWindow[1] = new Point2D.Double(250.0 / 3, 100); clipWindow[2] = new Point2D.Double(950.0 / 3, 100); lines = new Point2D.Double[2][2]; lines[0][0] = new Point2D.Double(0, 120); lines[0][1] = new Point2D.Double(400, 120); lines[1][0] = new Point2D.Double(0, 180); lines[1][1] = new Point2D.Double(400, 180); vectors = new double[2][2]; D = new double[2]; } @Override public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; // draw clip window g2d.setColor(Color.BLACK); g2d.draw(new Line2D.Double(clipWindow[0], clipWindow[1])); g2d.draw(new Line2D.Double(clipWindow[1], clipWindow[2])); g2d.draw(new Line2D.Double(clipWindow[2], clipWindow[0])); // draw lines for (int i = 0; i < lines.length; i++) { Point2D.Double p1 = lines[i][0]; Point2D.Double p2 = lines[i][1]; cyrusBeckClip(g2d, p1, p2); } } private void cyrusBeckClip(Graphics2D g2d, Point2D.Double p1, Point2D.Double p2) { double tE = 0, tL = 1; double dx = p2.x - p1.x; double dy = p2.y - p1.y; for (int i = 0; i < clipWindow.length; i++) { Point2D.Double P1 = clipWindow[i]; Point2D.Double P2 = clipWindow[(i + 1) % clipWindow.length]; double nx = -(P2.y - P1.y); double ny = P2.x - P1.x; double D = -nx * P1.x - ny * P1.y; double numerator = nx * p1.x + ny * p1.y + D; double denominator = -(nx * dx + ny * dy); if (denominator == 0) { if (numerator < 0) { return; } } else { double t = numerator / denominator; if (denominator < 0) { tE = Math.max(tE, t); } else { tL = Math.min(tL, t); } } } if (tE <= tL) { double x1 = p1.x + tE * dx; double y1 = p1.y + tE * dy; double x2 = p1.x + tL * dx; double y2 = p1.y + tL * dy; g2d.setColor(Color.BLUE); g2d.draw(new Line2D.Double(p1, new Point2D.Double(x1, y1))); g2d.setColor(Color.RED); g2d.draw(new Line2D.Double(new Point2D.Double(x1, y1), new Point2D.Double(x2, y2))); g2d.setColor(Color.BLUE); g2d.draw(new Line2D.Double(new Point2D.Double(x2, y2), p2)); } } } 将此代码改为 Java 应用程序运行
最新发布
05-16

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值