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

PHP移动互联网开发笔记(4)——自定义函数及数组

一.自定义函数 自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下: function funname(arg1, arg2, arg3......){ //TODO return values; } <?php function fun($m, $n){ if($m==0 $n==0){ return 0; }else{ $a=$m*$n; return $a; } } $p=2; $h=3; echo $p."*".$h."=".fun($p,

Delphi GDI+学习记录(4): 画笔对齐

//笔对齐 var g: TGPGraphics; p: TGPPen; sb: TGPSolidBrush; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),5); sb := TGPSolidBrush.Create(MakeColor(255,255,255,0)); p.SetAlignment(PenAlignmentCenter

CentOS7常用环境设置

一.云服务器ECS 地域:华东2 系统镜像:CentOS 7.3 64位 设置安全组,开放端口:80.3306.27017.21.22.2222.3717.8888.5672.15672.25672 二.基础安全设置 1.禁ping echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all   2.修改ssh登录端口 修改/etc/ssh/sshd_config 找到#Port 22这一行,去掉注释,把端口号改为2222 重启ssh服务systemctl

通过SSH实现TCP/IP隧道(端口转发):使用OpenSSH可能的8种场景

对于 Secure Shell (SSH) 这样的网络协议来说,其主要职责就是在终端模式下访问一个远程系统.因为 SSH 协议对传输数据进行了加密,所以通过它在远端系统执行命令是安全的.此外,我们还可以在这种加密后的连接上通过创建隧道(端口转发)的方式,来实现两个不同终端间的互联.凭借这种方式,只要我们能通过 SSH 创建连接,就可以绕开防火墙或者端口禁用的限制. 这个话题在网络领域有大量的应用和讨论: Wikipedia: SSH Tunneling O'Reilly: Using SSH T

C++ 算法大全

第3章 控制语句  /* 1.打印出所有的"水仙花数".所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如,153是一水仙花数,因为153 = 13 + 53 + 33. */ #include<iostream.h> void main() { int i, a=0, b=0, c=0; for(i=100;i<1000;i++) { a=i%10; b=i/10%10; c=i/100%10; if(a*a*a+b*b*b+c*

三、自定义函数

自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下: function funname(arg1, arg2, arg3......){ //TODO return values; }   view source print? 01.<?php  02.function fun($m, $n){  03.if($m==0 || $n==0){  04.return 0;  05.}else{  06.$a=$m*$n;  07.return $a;  08.}  09.}  10.