黑马程序员技术交流社区

标题: java基础 [打印本页]

作者: 徐文豪    时间: 2015-6-7 15:24
标题: java基础
s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
求大神指点   循环怎么做?还有那个数是怎么弄出来的?(例如: 值是5   然后是6项相加   5  55  555  5555。。。。是怎么出来的?)
最好有分析思路   

作者: 付欢    时间: 2015-6-7 16:23
还是没能理解楼主题目的意思
作者: world.net    时间: 2015-6-7 16:42
外层循环控制相加的个数求和,内层循环求每一项的数。
class Test{
        public static void main(String[] args){
                int sum=0,num=0,a=2,count=5;
                for(int x=0;x<count;x++){
                        for(int y=0;y<=x;y++){
                                num=a*(int)Math.pow(10,y)+num;//注意方法Math.pow(double a,double b)中间会有几次类型的转换。
                        }
                        sum=sum+num;
                }
        }
}
作者: 付欢    时间: 2015-6-7 16:49
新手,给楼主写了个代码,楼主试试
  1. public class Sum
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.        
  6.                 int a=qiuhe(2,3);
  7.                 System.out.println(a);
  8.         }
  9.         public static int qiuhe(int a,int n)
  10.         {       
  11.                 int sum = 0;
  12.                 int s = 0;
  13.                 int i = 0;
  14.                 for(int x = 0;x<n;x++)
  15.                 {
  16.                         s = s+a*mishu(x);//求第n项的值
  17.                         sum = i+s;//前n项求和
  18.                         i=sum;//将S赋值给i
  19.                 }
  20.                 return sum;
  21.        
  22.         }
  23.        
  24.        
  25.         public static int mishu(int m)//计算10的m次方
  26.         {
  27.                 int i = 1;
  28.                 for(int x=0;x<m;x++)
  29.                         i=i*10;
  30.                 return i;
  31.                
  32.         }
  33. }
复制代码

作者: 付欢    时间: 2015-6-7 16:51
付欢 发表于 2015-6-7 16:49
新手,给楼主写了个代码,楼主试试

由于不会写输入语句,楼主见谅啊
作者: 付欢    时间: 2015-6-7 16:52
付欢 发表于 2015-6-7 16:51
由于不会写输入语句,楼主见谅啊

上面的注释我再看下了,有错误,sum才是第n项的值
作者: 仲德明    时间: 2015-6-7 17:19
????
作者: 徐文豪    时间: 2015-6-11 10:01
kikt 发表于 2015-6-7 16:56
思路分析:
每一个需要相加的数字都是由同一个数字组成
每一个数字按照字符串理解,在计算时将其转变为int ...

arr = a + arr[i - 1];
这个是什么意思?
a + arr[i - 1];这个不是很懂   指点下
作者: 徐文豪    时间: 2015-6-11 10:08
kikt 发表于 2015-6-7 16:56
思路分析:
每一个需要相加的数字都是由同一个数字组成
每一个数字按照字符串理解,在计算时将其转变为int ...

arr[0] = a + "";
还有这个是什么意思呢?“”这里面是空格还是什么?
作者: zuopiezi    时间: 2015-6-11 10:09
选择错误的。
A 接口中只能包含抽象方法和常量
这个是正确的
下面给你说一下抽象类和接口的区别:抽象类由abstract关键字来修饰,接口由interface关键字来修饰。抽象类中除了有抽象方法外,也可以有数据成员和非抽象方法;而接口中所有的方法必须都是抽象的,接口中也可以定义数据成员,但必须是常量。

B 一个类可以实现多个接口
这个是正确的,java中 支持多实现 但是不支持多继承
C 类实现接口时必须实现其中的方法

这个是正确的 在接口的官方文档中 是这么说的,一个非接口的类实现另一个类 必须实现其所有方法。
D 接口不能被继承

这个说法是错误的。 接口是可以被接口继承的 你可以在java编辑器中试试。一个接口可以继承多个接口
interface C extends A, B {}是可以的.

一个类可以实现多个接口:
class D implements A,B,C{}

但是一个类只能继承一个类,不能继承多个类
class B extends A{}

在继承类的同时,也可以继承接口:
class E extends D implements A,B,C{}
这也正是选择用接口而不是抽象类的原因
作者: 痞子刘忙    时间: 2015-6-11 21:53
明天自己敲一下。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2