• 算法第四版 1.2.10


    编写一个visualcount类支持+1和-1操作,它的构造函数接受2个参数,N,Max。

    其中N指定了操作的最大次数,Max指定了计数器的最大绝对值.作为副作用,用图像显示每次作用后最大的值

    import edu.princeton.cs.algs4.StdDraw;
    import edu.princeton.cs.algs4.StdOut;
    
    public class No_1_2_10 {
        public static class VisualCounter
        {
            private int count;//计数器
            private int operater;//一共操作了多少次
            private int max;//计数器最大绝对值
            private int n;//操作的最大次数
            
            public VisualCounter(int N,int Max)
            {
                this.n = N;
                this.max = Math.abs(Max);
                StdDraw.setXscale(0, N+1);//给StdDraw类设置参数x,y的范围
                StdDraw.setYscale(0, Max*2);//
                StdDraw.setPenRadius(0.05);//设置笔的半径
            }
            
            public void increment()
            {
                operater++;//操作次数+1
                count++;//计数器加一
                StdDraw.point(operater, count);//画出以操作数和计数器为参数的圆
                if(operater>n||Math.abs(count)>max)
                {
                    throw new RuntimeException();
                }
            }
            
            public void decliine()
            {
                operater++;//操作数+1
                count--;//计数器减一
                StdDraw.point(operater,count);//画出一个点
                if(operater>n || Math.abs(count)>max)
                    throw new RuntimeException();
            }
            public int tally()
           {
            return count;//返回计数器的值
           }
            
            public String toString()
            {
                return "操作了"+operater+"次"+"此时的count为"+count+"次";
            }
            
            
            public static void main(String[] args)
            {
                int n = 5;
                int max = 3;
                
                VisualCounter visualcount = new VisualCounter(n,max);
                visualcount.increment();
                visualcount.increment();
                visualcount.increment();
                visualcount.decliine();
                visualcount.decliine();
                StdOut.println(visualcount);
            }
        }
    }

    结果如下:

     

  • 相关阅读:
    开淘店记录
    广告轮播效果
    loading事件加载效果
    正则表达式摘要
    cookie存取数据分析
    js 空格与回车处理
    数据对象型转换为数组型
    变换闪烁效果
    eclipse配置新环境
    五小时轻松入门Python
  • 原文地址:https://www.cnblogs.com/qinmin/p/12297353.html
Copyright © 2020-2023  润新知