【控制台】快开学了,闲的没事,画个圈圈诅咒你
2012-02-17 18:24
375 查看
额 马上开学了 看到这么一个题 画圈圈啊
好吧 闲的没事儿 解解
还解了一下方程
java般
c++
python
爱的
好吧 闲的没事儿 解解
还解了一下方程
java般
/*============================================================================= # FileName: drawCircle.java # Desc: # Author: yangyang # Email: duoduo3_69@163.com # HomePage: # Version: 0.0.1 # LastChange: 2012-02-17 16:23:32 # History: =============================================================================*/ import java.lang.Math; public class drawCircle { public static void main(String[] arg) { draw(20); } static void draw(double r) { //圆用星星来画 //横坐标x,纵坐标y //由圆的方程(x-r)^2+(y-r)^2 = r ^ 2 解出 //x = r - sqrt(2ry - y^2) //local = x,即星星的横坐标 double local = 0; //方程里面开方的部分 double sqnumber = 0; //用2 * row行来画这个圆 int row = 10; //y = r/row * i; double y = r / row; //需要输出空格的个数 long many = 0; for( int i = 0; i < row ; i++ ) { sqnumber = y * i * ( 2 * r - y * i); local = r - Math.sqrt(sqnumber); // local = r(1-sqrt(i/5(2 - i/5))) //空格数为整数,用round转换一下 many = Math.round(local); printBlank(many); System.out.print("*"); printBlank( Math.round(2 * (r - many))); System.out.print("*\n"); } for( int i = row - 1; i >= 0 ; i-- ) { sqnumber = y * i * ( 2 * r - y * i); local = r - Math.sqrt(sqnumber); // local = r(1-sqrt(i/5(2 - i/5))) many = Math.round(local); printBlank(many); System.out.print("*"); printBlank( Math.round(2 * (r - many))); System.out.print("*\n"); } } static void printBlank(long many) { for(int i = 0; i < many; i++) { System.out.print(" "); } } }
c++
/*============================================================================= # FileName: drawCircle.cpp # Desc: # Author: yangyang # Email: duoduo3_69@163.com # HomePage: # Version: 0.0.1 # LastChange: 2012-02-17 18:13:37 # History: =============================================================================*/ #include<iostream> #include<cmath> using namespace std; class Circle { public: Circle(); Circle(double radius); void draw(); protected: //输出空格 void printBlank(int many); private: // 半径 double r; }; Circle::Circle() { } Circle::Circle(double radius):r(radius) { } void Circle::draw() { double local = 0; double sqnumber = 0; int row = 10; double y = r / row; int many = 0; for( int i = 0; i < row ; i++ ) { sqnumber = y * i * (2 * r - y * i); local = r - sqrt(sqnumber); many = floor(local); printBlank(many); cout << "*"; printBlank(floor( 2 * ( r - many))); cout << "*" << endl; } for( int i = row -1; i >= 0 ; i-- ) { sqnumber = y * i * (2 * r - y * i); local = r - sqrt(sqnumber); many = floor(local); printBlank(many); cout << "*"; printBlank(floor( 2 * ( r - many))); cout << "*" << endl; } } void Circle::printBlank(int many) { for( int i = 0; i < many ; i++ ) { cout << " "; } } int main() { Circle a(20); a.draw(); return 0; }
python
''' #============================================================================= # FileName: drawCircle.py # Desc: # Author: yangyang # Email: duoduo3_69@163.com # HomePage: # Version: 0.0.1 # LastChange: 2012-02-17 18:13:55 # History: #============================================================================= ''' import math class Circle: def __init__(self,radius = 0): self.__r = radius def printBlank(self,many): for i in range(many): print " ", def draw(self): row = 10 y = self.__r /row array_i = range(row) for i in array_i: sqnumber = y * i * ( 2 * self.__r - y * i) local = self.__r - math.sqrt(sqnumber) many = int(math.floor(local)) self.printBlank(many) print "*", self.printBlank(int(math.floor( 2 * (self.__r - many)))) print "*" for i in array_i[::-1]: sqnumber = y * i * ( 2 * self.__r - y * i) local = self.__r - math.sqrt(sqnumber) many = int(math.floor(local)) self.printBlank(many) print "*", self.printBlank(int(math.floor( 2 * (self.__r - many)))) print "*" if __name__ == "__main__": a = Circle(15) a.draw()
爱的
相关文章推荐
- 没事花一天时间用c++写的扫雷控制台游戏
- 屏保:画圈圈诅咒你
- 屏保:画圈圈诅咒你
- 画个圈圈诅咒你们
- [思考]画个圈圈诅咒你
- 改变控制台输出颜色
- 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作
- c#实现简单控制台udp异步通信程序示例
- 在嵌入式Linux上构建2个串口控制台
- 在控制台程序中不显示控制台界面
- 开学整整一个月了
- 开启MongoDB不能访问web控制台问题;; access MongoDB over HTTP
- Weblogic控制台忘记密码问题解决
- Citrix Studio控制台交付出来的计算机出现未注册
- Android 控制台异常:ScrollView can host only one direct child
- RH413企业安全加固 第11章 加强控制台安全 第一节
- 在dos控制台显示utf8字符
- mac maven 控制台提示信息乱码解决
- java 获取控制台的输入的两个方法
- Java控制台输出程序运行时间