java学习笔记

最近蛮忙,忙得我的作业 都还有一大堆没做,特别是java 。作业中有一道题目是求1!+2!+…+100!

由于数字比较小,就直接一个简单的算就 OK了

下面是源代码:


import java.util.Scanner;
public class artur_1

{

public static void main(String[] args)

{ int n;

        Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数n:");
n=sc.nextInt();
   System.out.println(getRevers(n));
}

public static double getRevers(int n)
{
             double sum=0;
             double nul=1;
             for(int i=1;i <=n;i++)
             {
              nul=nul*i;
              sum+=nul;
             }
             return sum;
    }
    }
这是一个比较简单的算法,参考了CSDN的jayflee的算法,比较实用,不过此算法还是有缺点,java的int类型的范围是-214748648~2147483647,输入一个2147483647程序就over了(另外本来的源代码是 错误的应该是double类型执行就不会有错误),想要更大的话,曲强 Nicky 的随笔里面有一个算法,还是dialog的,很强大,准备继续学习中,Eclipse 还是不大会用,555,不知道怎么学习Eclipse,不过慢慢来好了,呵呵

请专注于学习续

今天的两个java题目,题目具体记得不太清楚
1.输出结果s=a+aa+aaa+…+aaaa…a(最后一项有n个a)。如a=3,n=4,则s=3+33+333+3333,其中a和n由用户输入
2.题目大概是输入一个数,分别输出这个数的每一位。
我已经搞定,参考了知道的回答,源代码如下:
第一题目:

/**
*引入Scanner类,读取控制台输入
*引入Math类,读取控制台输入
*/
import java.util.Scanner;
import java.lang.Math;
public class artur_1{
//实例化Scanner对象
private Scanner scanner = new Scanner(System.in);
private int a,i;
private int n;
private int sum=1,s=1;
artur_1(){
System.out.println("请输入a,n:");
//获取a
a = scanner.nextInt();
//获取n
n = scanner.nextInt();
//输出a
System.out.println("a="+a);
System.out.println("n="+n);
}
//累加函数
public int addNum(){
//先算出1+11+111+111
for(i=1;i<n;i++){
s+=Math.pow(10,i);sum+=s;
}
//再算出a+aa+aaa+aaa
sum = a * sum;
//返回sum
return sum;
}
public static void main(String[] args){
//调用构造函数实例化
artur_1 swk = new artur_1();
//调用累加函数
swk.sum = swk.addNum();
//输出结果
System.out.println("a+aa+aaa+aaa..a(n)的结果为:"+swk.sum);
}
}

第二题目:

import java.util.Scanner;
public class artur_2
{
private Scanner scanner = new Scanner(System.in);
private int n,a;
private int sum = 1;
artur_2(){
System.out.println("请输入n:");
//获取a
n=scanner.nextInt();
//输出a
System.out.println("n="+n+" 结果为:");
}
//显示结果
public int show(){
//算法主要是取余%,再去掉已经取了的余数
while( n! = 0 ){
a=n%10;
System.out.println(" "+a);
n/=10;
}
return n;
}
public static void main(String[] args){
//实例化
artur_2 swk = new artur_2();
//显示结果
swk.show();
}
}

请专注于学习

最近是比较忙,学生会要举办歌手大赛,还要出书,我要帮忙排版,修改 但是不能为自己找借口:没有时间读书!c#中多种特性,重载,多态,委托,事件,还是没有弄明白,特别是委托,事件,是如何实现,它的基本原则是什么?还 得下去深入研究! 今天,特别郁闷的是上课需要用java写两个算法,我挤尽脑汁,还没有调试出来,题目很简单,今天下课后继续实现!
呵呵,本来要去这本书的网站的去下载,可惜咯没能下载到,在这里找到了源代码,感谢这位hier
在程序源代码中,首先定义了两个数组,分别用来存放电话号码和人名,利用 public int this[int index]声明第一个索引,实现类似数组方式的电话号码查询,再接着利用 public int this[string indexName]声明第二个索引,完成从人名到电话号码的查询,加入了一个只读属性,TotalNums在这里仅仅用于演示,主程序Main()中, 首先完成电话列表初始化工作,然后录入数据,最后读出数据并显示。程序的源代码如下:


using System;
//索引比数组强的地方在于找集合中的元素不一定非要用下标,
//找电话号码不需要知道它排在号码簿里的位置[下标],只要用"名字"查询就行了
namespace project1
    {
        public class TelephoneList         //创建类
        {
            private int[] teleNums;           //定义整型数组,用来存放电话号码
            private string[] teleNames;       //定义字符型数组,用来存放电话号码

            public TelephoneList(params string[] aNames)          //params表参量参数,对付不确定长度数组的
            {
                teleNames = aNames;                                                       //将参量参数传给字符数组,
                teleNums = new int[aNames.Length];                  //以参量参数的个数进行整型数组实例化,
                for (int i = 0; i < aNames.Length; i++)                 //循环进行将初始化,赋值为0
                {
                    teleNums[i] = 0;
                }
            }

            public int this[int index]                            //索引1的声明(索引和属性的样子很像多个this[**])
            {
                get
                {
                    if (index >= 0 && index < teleNums.Length) //对索引进行判断
                    {
                        return teleNums[index];
                    }
                    else
                    {
                        Console.WriteLine("引入了错误的索引!");
                        return -1;
                    }
                }
                set
                {
                    if (index >= 0 && index < teleNums.Length)
                    {
                        teleNums[index] = value;
                    }
                    else
                    {
                        Console.WriteLine("引入了错误的索引!");
                    }
                }
            }

            public int this[string indexName]                   //索引2的声明
            {
                get
                {
                    return this[NameToIndex(indexName)];
                }
                set
                {
                    this[NameToIndex(indexName)] = value;
                }
            }

            private int NameToIndex(string indexName)//利用名字进行索引
            {
                for (int i = 0; i < teleNames.Length; i++)
                {
                    if (teleNames[i] == indexName)
                        return i;
                }
                Console.WriteLine("没有发现这个名字!");
                return -1;
            }

            public int TotalNums
            {
                get
                {
                    int sum = 0;
                    foreach (int num in teleNums) //将所有号码进行相加 在这里没什么意义
                    {
                        sum += num;
                    }
                    return sum;
                }//只读属性,不要set
            }

        }

        class Program
        {
            static void Main(string[] args)
            {
                TelephoneList myTeleList = new TelephoneList("LiuY", "Duanl", "LuoB");
                //实例化TelephoneList,将"LiuY", "Duanl", "LuoB"分别初始化到字符数组teleNames
                //
                myTeleList[0] = 4856212;            //使用整型索引1,写入
                myTeleList["Duanl"] = 5485488;      //使用字符索引2,写入
                myTeleList[2] = 1596561;            //使用整型索引1,写入

                Console.WriteLine("电话列表中,LiuY对应的号码是:{0}", myTeleList["LiuY"]); //使用索引2,读取
                Console.WriteLine("电话列表中,Duanl对应的号码是:{0}", myTeleList[1]);   //使用索引1,读取
                Console.WriteLine("电话列表中,LuoB对应的号码是:{0}", myTeleList["LuoB"]);//使用索引2,读取
                Console.WriteLine("电话的号码数值总和是:{0}", myTeleList.TotalNums);     //使用只读属性

                Console.WriteLine("按Enter键退出!");
                Console.Read();

            }
        }
    }

实战在vmware上安装ubuntu-8.10

在网上看了一些文章了关于虚拟机安装ubuntu8.10的,觉得这里还是有些价值的,以下都是参考的做法,具体每个人的情况不同,请自行做一些适当的改变即可。好了废话,不多说,实战开始。
平台:VMware-workstation-6.5.1-126130.exe 具体下载 请点这里:官方太平洋pchome
注册机和汉化包在这里,没注册可可自行搜索。
Linux版本是ubuntu-8.10-desktop-amd64,安装好虚拟机以后,可以开工了。

一、启动vmware 并开始创建虚拟机

打开VMwareworkstation

启动后现实如下界面:

实战在vmware上安装ubuntu-8.10 step1
实战在vmware上安装ubuntu-8.10 step1

点击“新建虚拟机”创建一个新的虚拟机,选择“自定义”

实战在vmware上安装ubuntu-8.10 step2
实战在vmware上安装ubuntu-8.10 step2

点击“next”,选择VMwareworkstation6.5,点击“next”

实战在vmware上安装ubuntu-8.10 step3
实战在vmware上安装ubuntu-8.10 step3

选择安装盘镜像文件的位置,点击 “浏览”,选择镜像文件,点击 ” next”

实战在vmware上安装ubuntu-8.10 step4
实战在vmware上安装ubuntu-8.10 step4

为自己的虚拟机取个名字,本例是ubuntu.

在位置 栏位填虚拟机镜像文件保持的路径,本例中在 E:\Ubuntu下面。点击 “next”,

实战在vmware上安装ubuntu-8.10 step5
实战在vmware上安装ubuntu-8.10 step5

选择处理器数量,点击 “next”

实战在vmware上安装ubuntu-8.10 step6
实战在vmware上安装ubuntu-8.10 step6

分配虚拟机内存大小, 点击 ”next“

实战在vmware上安装ubuntu-8.10 step7
实战在vmware上安装ubuntu-8.10 step7

使用网络地址翻译(NAT),点击 ”next‘,

实战在vmware上安装ubuntu-8.10 step8
实战在vmware上安装ubuntu-8.10 step8

选择 磁盘I/o类型 ,点击 next

实战在vmware上安装ubuntu-8.10 step9
实战在vmware上安装ubuntu-8.10 step9

选择虚拟机使用的磁盘,这里选择创建一个新的虚拟机磁盘镜像。

实战在vmware上安装ubuntu-8.10 step10
实战在vmware上安装ubuntu-8.10 step10

选择磁盘类型。选SCSI类型,点击 Next,

实战在vmware上安装ubuntu-8.10 step11
实战在vmware上安装ubuntu-8.10 step11

分配磁盘空间大小,点击 next,

实战在vmware上安装ubuntu-8.10 step12
实战在vmware上安装ubuntu-8.10 step12

选择虚拟机镜像文件的名称。对于切割成多个2G的文件的镜像,会自动以这个名字为基础,

如果本例子使用的是Ubuntu,则将生成Ubuntu-s001.vmdk 等等。

实战在vmware上安装ubuntu-8.10 step13
实战在vmware上安装ubuntu-8.10 step13

在这里可以现实虚拟机的硬件信息,也可以重新定制硬件,点击 Finish 按钮,

则完成了虚拟机镜像的创建。关于如何在虚拟机里面安装8.10,请参考这里,我就不再叙述了。

实战在vmware上安装ubuntu-8.10 step14
实战在vmware上安装ubuntu-8.10 step14