数组加一
首先问题分为两部分!
第一部分,加一后,该数位数不变。另一种,位数加一。
第一种方法:
我们可以先将数组[0]空下来,以备增加的位数使用!0
我们要判断每个位是否需要进位,当位数据为9时,+1后便要进位!
上代码!
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner pi = new Scanner(System.in);
int n = pi.nextInt();
int a[] = new int[n+1];
int x,j,length;
length=n;
for(int i=1;i<=n;i++)//将数组的0号留出来,用作进位
{
x=pi.nextInt();
a[i]=x;
}
for(int i=1;i<=n;i++)
{
if(a[n-i+1]==9&&i==n)
{
a[n-i+1]=0;
a[0]=1;
length++;
break;
}
if(a[n-i+1]==9)//a[n]开始时
{
a[n-i+1]=0;
}
else
{
a[n-i+1]++;break;
}
}
for(j=1;j<=length;j++)//打印模块
{
if(length!=n)
{
if(j!=length)
System.out.print(a[j-1]+" ");
else {
System.out.print(a[j-1]);
}
}
else
{
if(j!=length)
{
System.out.print(a[j]+" ");
}
else
{
System.out.print(a[j]);
}
}
}
}
}
第二种方法:
使用数组[0],当位数+1时,直接将数组[0]的元素赋值为1,然后在数组末尾再增加一个0即可。
我们要判断每个位是否需要进位,当位数据为9时,+1后便要进位!
上代码!
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner pi = new Scanner(System.in);
int n = pi.nextInt();
int a[] = new int[n+1];
int x,j,length;
length=n;
for(int i=1;i<=n;i++)//必须使用数组0号!!!
{
x=pi.nextInt();
a[i-1]=x;
}
for(int i=1;i<=n;i++)
{
if(a[n-i]==9&&i==n)
{
a[0]=1;
a[n]=0;
length++;
break;
}
if(a[n-i]==9)//a[n]开始时
{
a[n-i]=0;
}
else
{
a[n-i]++;break;
}
}
for(j=1;j<=length;j++)
{
if(j!=length)
{
if(j!=length)
System.out.print(a[j-1]+" ");
else {
System.out.print(a[j-1]);
}
}
else//无进位!!!
{
if(j!=length)
System.out.print(a[j-1]+" ");
else {
System.out.print(a[j-1]);
}
}
}
}
}
记得点赞呀,谢!