java方法思路及代码实现

2.题目:求s=a+aa+aaa+a...a的值,其中a是一个数字。例如:2+22+222+2222(此时共有4个数相加),a的值,加数个数n均从键盘获取。要求:提供方法... 2.题目:求s=a+aa+aaa+a...a的值,其中a是一个数字。例如:2+22+222+2222(此时共有4个数相加),a的值,加数个数n均从键盘获取。
要求:
提供方法思路,变量作用,及循环说明

越详细越好。
最后输出结果S=a+aa+aaa 形式。
注:请回答者自己写代码,并附注释,粘贴党请绕行!!!
不是强硬
实在是有的人为了积分根本不看问题
百度搜一下就把答案粘贴
四处捣乱
朋友勿怪!
展开
 我来答
w1985g
2010-04-16 · TA获得超过1633个赞
知道小有建树答主
回答量:1190
采纳率:100%
帮助的人:1027万
展开全部
import java.util.Scanner;
public class Test1 {
public static void main(String args[]) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入a和n的值:");
int a=scanner.nextInt(); //从控制台获取a的值
int n=scanner.nextInt(); //从控制台获取n的值
System.out.println("a="+a+" n="+n);
String str="S="+a;
int temp=a; //临时变量,记录2、22、222……
for (int i = 1; i <= n; i++) {
if (i==1) {
continue;
}
temp=temp*10+a;
str=str+"+"+temp;
}
System.out.println(str);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kinsonhe
2010-04-16 · TA获得超过190个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:93.2万
展开全部
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input a:");
String str = scanner.nextLine();// 获得键盘输入
try {// 扑捉非法字符
int a = Integer.parseInt(str);// 将字符串转换成整型,得到a
System.out.println("Input n:");
str = scanner.nextLine();// 获得键盘输入
int n = Integer.parseInt(str);// 将字符串转换成整型,得到n
if (a <= 0 || a > 9 || n <= 0 || n > 9) {// a,n要为个数
System.out.println("Error Input!");
} else {
int[] data = new int[n];// 存储a aa aaa aaaa..
int temp = 0;// 临时变量
for (int i = 0; i < n; i++) {// 循环求每组数据
temp = a * (int) Math.pow(10, i);//每组数据是多少位数
data[i] = i > 0 ? (temp + data[i - 1]) : temp;//一位数等于本身,否则加上前面的数
}
System.out.print("S=");//不转换输出
for (int i = 0; i < data.length; i++) {
if (i == (data.length - 1)) {
System.out.print(data[i]);//不转换输出a aa
} else
System.out.print(data[i] + "+");
}
}
} catch (Exception e) {
System.out.println("Error Input!");
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
聶鑫
2010-04-16 · TA获得超过1005个赞
知道小有建树答主
回答量:890
采纳率:0%
帮助的人:699万
展开全部
package ex1;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class TestThree {
public static void main(String[] args) {
try {
FileWriter fw = new FileWriter("data1.txt");
Scanner in = new Scanner(System.in);
System.out.println("请输入a值:");
String a = in.next();
System.out.println("请输入n值:");
int n = in.nextInt();
long sum = 0;
for (int i = 0; i < n; i++) {
String s = a;
for (int j = 0; j < i; j++) {
s += 2;
}
sum += Long.parseLong(s);
}
System.out.println("当a=" + a + ",n=" + n + "时,结果为:" + sum);
fw.write("当a=" + a + ",n=" + n + "时,结果为:" + sum);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}

楼上的也是一种方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
用来玩
2010-04-16 · TA获得超过766个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:239万
展开全部
import java.io.*;

public class TestFor {
public static void main(String[] args){

long sum=0;
int a;
int n;
int temp=0;
String s=new String();

a=read();
while(a>9||a<0){
System.out.println("输入的必须是个位数字");
a=read();
}
n=read();
s="s=";
for(int i =0;i<n;i++){
temp=temp*10+a;
sum+=temp;
s+=temp+"+";
}
for(int j=0;j<s.length()-1;j++)
System.out.print(s.charAt(j));
System.out.println("="+sum);

}

public static int read(){
int sum=0;
InputStreamReader is=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(is);
String s=new String();
try {
s = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
int temp=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)>='0'&&s.charAt(i)<='9')
sum+=temp*10+(int)s.charAt(i)-48;
else return -1;
}
return sum;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
suntreestar
2010-04-27
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
/*
* 本程序版权由 太阳树 所有。
* 标注 太阳树 版权所有即可引用。
*
*
*
*
*
*
*
*
*
*
*
*/

package sum;

import java.io.IOException;
import java.util.Scanner;

/**
* 输入a,n计算s=a+aa+…+aaa…(注n个a),并打印。
*
* 程序设计思路:程序由两个类(Main和MyMath)组成。
* Main完成a,n的输入并初始化MyMath类的对象calculator,
* 由calculator.mySum()完成计算并返回打印的字符串。
*
* @author 太阳雨
* @since JDK1.0
*/
public class Main {

/**
* 完成a,n的输入并初始化MyMath类的对象calculator,
* 打印由calculator.mySum()计算返回的字符串。
* @throws 当输入a,n非整数时抛出异常。
*/
public static void main(String[] args) throws IOException {
int a = 0;
int n = 0;
Scanner sc = new Scanner(System.in);
while (!MyMath.check(0,a,10)){
System.out.print("请输入(1至 9的整数)a = ");
a = sc.nextInt();
}
while (!MyMath.check(0,n,19)){
System.out.print("请输入(1至18的整数)n = ");
n = sc.nextInt();
}
MyMath calculator = new MyMath(a,n);
System.out.println(calculator.mySum());
}

}

/**
* 计算s=a+aa+…+aaa…(注n个a),并生成打印的字符串。
*
* @author 太阳雨
* @since JDK1.0
*/
class MyMath{

/**整数a的字符串形式*/
private String strInt = new String();
/**结果字符串,格式为 s=a+aa+…+aaa…(注n个a)。*/
private String str = new String();
/**1至 9的整数*/
int a = 0;
/**1至18的整数*/
int n = 0;

/**根据a,n创建一个MyMath实例*/
MyMath(int a,int n){
this.a = a;
this.n = n;
strInt = String.valueOf(a);
}

/**
* 静态方法,判断x是否落入区间(min.max)里。
* @return 在区间(min.max)里则返回true,否则返回false。
*/
public static Boolean check(int min,int x,int max){
if (min<x & x<max)
return true;
else
return false;
}

/**
* 计算aaa…(注n个a),并在结果字符串中加入字符串aaa…(注n个a)。
* @return aaa…(注n个a)的数值。
*/
private long multiplier(int a,int n){
int i = 0;
long t = a;
str = str+strInt;
for (i=1;i<n;i++){
t = t*10+a;
str = str+strInt;
}
return t;
}

/**
* 计算s=a+aa+…+aaa…(注n个a),并生成打印的字符串。
*
* 设计思路:计算s=a+aa+…+aaa…(注n个a),分解为两部分:
* 1、计算aaa…(注i个a)2、累计aaa…(注i个a)——i为1到n的整数。
* 计算aaa…由multiplier(int a,int n)完成。
* 结果字符串是在计算过程中随之逐渐生成的。
*
* @return 打印的字符串,格式为 s=a+aa+…+aaa…(注n个a)。
*/
public String mySum(){
int i = 0;
long s = a;
str = str+strInt;
for (i=1;i<n;i++){
str = str+'+';
s = s+multiplier(a,i+1);
}
str = String.valueOf(s)+'='+str;
return str;
}

}
//还有不懂的可以联系我,发送百度消息就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
80htm
2010-04-16 · TA获得超过712个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:95.6万
展开全部
请教别人怎么语气这么强硬,难道因为给了悬赏分?
这个题目很简单,我只编了代码,还要工作,就不写注释了,相信你能看懂

public class Sovle1 {

public static void main(String args[]){

Scanner input = new Scanner(System.in);
System.out.print("输入a:");
int factor = input.nextInt();
System.out.print("输入n:");
int count = input.nextInt();
double sum = 0;
double item = factor;
StringBuilder sb = new StringBuilder("S=");
for(int n=0; n<count; n++,item=item*10+factor){
sum += item;
if(n < count -1){
sb.append((int)item);
sb.append("+");
}
else{
sb.append((int)item);
sb.append("=");
sb.append(sum);
}
}
System.out.println(sb);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式