zoukankan      html  css  js  c++  java
  • 201803-2碰撞的小球



    // exercise.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    #include "pch.h"
    #include<iostream>
    using namespace std;
    
    struct ball {
    	int pos;//位置
    	int dir;//方向,1为右
    };
    ball balls[101];
    
    int main()
    {
    	int n,L,t;
    	cin >> n >> L >> t;
    	//初始化
    	for (int i = 0; i < n; i++)
    	{
    		cin >> balls[i].pos;
    		balls[i].dir = 1;
    	}
    	//模拟运行
    	int T = 0;
    	while (++T <= t)
    	{
    		for (int i = 0; i < n; i++)
    		{
    			switch (balls[i].dir)
    			{
    			case 1:balls[i].pos += 1; break;
    			case -1:balls[i].pos -= 1; break;
    			default:break;
    			}
    		}
    		for (int i = 0; i < n; i++)
    		{
    			if (balls[i].pos == L)//撞墙,若撞则不可能碰撞
    			{
    				balls[i].dir = -1;
    			}
    			else if(balls[i].pos==0)
    			{
    				balls[i].dir = 1;
    			}
    			else
    			{
    				for (int j = i + 1; j < n; j++)
    				{
    					if (balls[i].pos == balls[j].pos)//碰撞
    					{
    						balls[i].dir = -balls[i].dir;
    						balls[j].dir = -balls[j].dir;
    					}
    				}
    			}
    
    		}
    	}
    
    	for (int i = 0; i < n; i++)
    	{
    		cout << balls[i].pos << " ";
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    设计模式-适配器模式(09)
    windows电脑使用技巧及常用CMD
    接口调用方法
    矩阵对角线和
    函数基础小结
    文件处理实战之购物车系统
    文件处理小结
    Python进阶实战之三级菜单
    Python进阶小结
    Python深浅拷贝
  • 原文地址:https://www.cnblogs.com/WuDie/p/11365671.html
Copyright © 2011-2022 走看看