黑马程序员技术交流社区
标题:
求高手啊~急急急急
[打印本页]
作者:
巩彪
时间:
2012-8-15 00:29
标题:
求高手啊~急急急急
请编写一个程序,程序的功能是:求Sn=a+aa+aaa+…+aaa…a ,
最后一项为n个a,其中a是一个数字。
例如:a为2、n为5时,则S5=2+22+222+2222+22222。要求a和n都要从键盘输入。
作者:
徐小骥
时间:
2012-8-15 01:28
不知道你这是不是测试题 可能禁答,少年 自己多想想 我给你提供一个思路:
n=5时 不就是 2X1+2X10+2X100+2X1000+2X10000=2x(1+10+100+1000+10000)
1+10+100+1000+10000可以看成是 1X10的0次方+1X10的1次方+1X10的2次方+.....+1X10的4次方
写个方法就是static void getNum(int a ,int n){.....}在main函数中调用此方法
作者:
周世阳
时间:
2012-8-15 01:48
public class Test{
//总和全局变量
public static int sum;
public static void main(String [] args){
System.out.println(calculate(2,5));
}
public static int calculate(int initial_num,int n){
//定义一个局部变量保存每次需要加的数
int step=initial_num;
综合初始值为需要叠加的数
sum=initial_num;
for(int i=1;i<n;i++){
//每次加的数都是上一个数10倍再加一个叠加数,也就是你所说的a
//总共循环n-1次,因为第一个数已经以初始值的形式赋给了sum了
step=step*10+initial_num;
sum+=step;
}
return sum;
}
}
作者:
黑马王建伟
时间:
2012-8-15 08:48
刚看到,就写了个方法,你试试,绝对按照你的要求
package com;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);//扫描控制台输入的参数
String str=s.next();//在控制台输入方式为如:2,5 这要注意!!!!!!!!
String str1[]=str.split(",");//字符串按指定字符拆分
test1(Integer.parseInt(str1[0]),Integer.parseInt(str1[1]));//调用方法
}
public static void test1(int a,int b){
String str="";
int c=0;
String sum="";
String sum_="sum_";
for (int i = 0; i < b; i++) {
c=Integer.parseInt(str+=a);//把数字通过字符串相加,然后再转成数字
sum+=(c+"+");
if(i==b-1){
sum=sum.substring(0,sum.length()-1);//截取字符串去掉最后的“+”
sum_=sum_+String.valueOf(b)+"="+sum;//拼接字符串为sum_5=2+22+222+2222+22222,其中5为输入的第二个参数
}
}
System.out.println(sum_);
}
}
复制代码
作者:
王海亮
时间:
2012-8-15 09:03
本帖最后由 王海亮 于 2012-8-15 09:04 编辑
你也可以有string类型追加
String S_num=“2”;
int [] arr=new int[5];
for(int i=0;i<5;i++)
{
if(i!=0)//如果是第一个数字则不追加
S_num=+"2";
arr
=(int)S_num;
}
你在求出数组每个元素的和封装成一个有参方法在main函数中调用此方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2