for-关于加法问题,2+22+222+2222.。。。这样的

问题描述

关于加法问题,2+22+222+2222.。。。这样的
public class ClassMat26 {
/*
* 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
* 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
*/

public static int Count;int test(int aint i) {      int aa;    for ( int j = 0; j <=i; j++) {        aa = a * 10 + a;        Count = a + aa;    }    System.out.println(""Count=""+Count);    return 0;}public static void main(String[] args) {    ClassMat26 cm = new ClassMat26();    cm.test(25);}

}

我的理解的一直加下去,cm.test(25); 表示2为初始的,一共加5次,我这样的实现哪里不对吗;如果参数换位cm.test(53);,就是5+55+555 这样了

解决方案

    int aa = 0;    Count = 0;    for ( int j = 0; j <i; j++) {        aa = aa * 10 + a;        Count += aa;    }

解决方案二:
( int j = 0; j <=i; j++)
多加了一次

解决方案三:
for循环里,应该是a*10的i次方才对吧

解决方案四:

 int test(int aint i) {int sum = 0;for(int x = 1; x <= i; i++){    int mul = 1;    for (int y = 1; y <=x; y++)        {            sum += a * mul;            mul *= 10;        }}System.out.println(""Count=""+sum);return sum;}

解决方案五:

/* package whatever; // don't place package name! */import java.util.*;import java.lang.*;import java.io.*;/* Name of the class has to be ""Main"" only if the class is public. */class Ideone{    int test(int aint i) {        if (i == 1) return a;        int sum = 0;        for(int x = 1; x <= i; x++)        {            int mul = 1;            for (int y = 1; y <= x; y++)                {                    sum += a * mul;                    mul *= 10;                }        }        return sum;    }    public static void main (String[] args) throws java.lang.Exception    {        Ideone cm = new Ideone();        System.out.println(""Count=""+cm.test(25));    }} 

解决方案六:
Count=24690
http://ideone.com/vQX2sy
通过在线编译

解决方案七:
s=(ax10^0)+(ax10^1+ax10^0)+(ax10^2+ax10^1+ax10^0)+(ax10^3+ax10^2+ax10^1+ax10^0)+...+(ax10^(n-1)+ax10^(n-2)+...+ax10^0)
这个是规律,自个儿想想逻辑实现。

解决方案八:
public static int Count;

int test(int aint i) {
int aa;
count = a;
if(i>1)
{

for ( int j =2; j <=i; j++) {
aa = a * 10 + a;
Count += aa;
}
}
System.out.println(""Count=""+Count);
return 0;
}

public static void main(String[] args) {
ClassMat26 cm = new ClassMat26();
cm.test(25);
}

解决方案九:
int aa = 0;
Count = 0;
for ( int j = 0; j <i; j++) {
aa = aa * 10 + a;
Count += aa;
}
其实这段代码很常用,被应用到很多题目中,当初学习编程的时候,对此印象深刻,aa = aa*10 +a;利用这个代码,当然还要添加其他代码可以实现另外一个功能,输入一个字符串,
把其中的数字提取出来,比如输入“ab12c3d4e5”,输出12345。很经典的哦

解决方案十:
你出错的原因就是没考虑好1个数的情况,见我的回复

时间: 2016-04-04
Tags: for

for-关于加法问题,2+22+222+2222.。。。这样的的相关文章

最新java编程50题及答案

[程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?    //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:    

求s=a+aa+aaa+aaaa+aa...a的值(其中a是一个数字)

查看全套"c语言习题集" 题目: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 1.程序分析:关键是计算出每一项的值. 2.程序源代码: #include "stdio.h"#include "conio.h"main(){ int a,n,count=1; long int sn=0,tn=0; printf("pleas

每天敲两个代码-C源程序100例(加油)

编译命令 gcc 1.c -o 1 (-std=c99) gcc 3.c -lm -o 3 ./1 地址: http://fightingyanping.blog.163.com/blog/static/116572703201162633134771/ http://blog.csdn.net/zaojiahua/article/details/8684523 2014.2.28 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填

算法如何开窍

[程序1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不 死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); }public static int

《C语言及程序设计》实践参考——另类求和

返回:贺老师课程教学链接  项目要求 [项目1:另类求和]求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字.例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入.请在下面的代码基础上补充完整. #include <stdio.h> int main( ) { int a,n,count=1,Sn=0,Tn=0; printf("请输入 a 和 n 的值:\n"); scanf("%d %d",&a,&

看看你的逻辑思维能力怎么样,经典题目,不要找答案哦!

问题描述 [程序1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....[程序2]题目:判断101-200之间有多少个素数,并输出所有素数.1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.[程序3]题目:打印出所有的"水仙花数",所谓"水仙花数

《C语言及程序设计》实践项目——迭代法解题

返回:贺老师课程教学链接  [项目1:另类求和]求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字.例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入.请在下面的代码基础上补充完整. #include <stdio.h> int main( ) { int a,n,count=1,Sn=0,Tn=0; printf("请输入 a 和 n 的值:\n"); scanf("%d %d",&a,&n

关于JAVA经典算法40题(超实用版)_java

[程序1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++)System.out.println(f(i));}public static int f(in

C语言程序设计50例(经典收藏)_C 语言

[程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: 复制代码 代码如下: #include "stdio.h"#include "conio.h"main(){  int i,j,k;  printf("\n");  for(i=1;i<5;i++) /*以下为三重循环*/