1.s=a+aa+aaa+....如a=1 n=3 即 1+11+111=123 求和
//i*10^(count-1)+i
每一个数(如111,是 上一个数字+a*10^2,2是当前数的个数-1)
public static int countN(int base,int count){
double tmp = 0,res = 0;
for (int i = 0; i < count; i++) {
tmp = base*Math.pow(10,i)+tmp;
res = res+tmp;//1 11 111
}
return (int)res;
}
2、水仙花数:
//输出所有水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
//三位数 100~999 提取每位,按次方加和是否等于原数
public static void ShuiXianHua(){
int num[] = new int[3];
for (int i=100;i<=999;i++){
num[0] = i/100;//最高位
num[1]=(i-num[0]*100)/10;//中位
num[2]=i-num[0]*100-num[1]*10;
if (Math.pow(num[0],3)+Math.pow(num[1],3)+Math.pow(num[2],3)==i)
System.out.println(i);
}
}
3、判断数字是几位数、输出每一位、逆序输出每位
.给出一个不多于5位的正整数,要求 1 输出它是几位数 2 分别输出每一位数字 3按逆序输出各位数字,例如原数321,应输出123
1、基本思想是 int类型的,能除过则有值 如 500/100==5;除不过的值为0 ,如500/5000==0;
2、打印每位,先调用第一步的知道有几位,把每位存放在数组中,最后输出/逆序输出即可
5421:
5420%10==1 个位是1 5420/10=542 去除最低位的1 现在数num2 是542
542%10==2 十位数2 542/10=54 去掉十位的2 是54
54%10==4 百位4 54/10==5 去掉百位的4 是5
5%10==5 千位5 5/10=0 是0
结束:{1,2,4,5}逆序输出数组即可。
3、逆序打印每位:把数组正序遍历即可
4、使用charAt方法,String str=Integer.toString();数组转为str,之后直接获取长度str.length就知道有几位数,
new个对应位的数组,每位用arr[i]=str.charAt(i);最后正序/逆序输出即可。
public static int judegNumber(int num){
int level = 0;
if( num/100000>=1||num<=0)
return 0;
if(num/10000>=1)
level=5;
else if(num/1000>=1)
level=4;
else if (num/100>=1)
level=3;
else if(num/10>=1)
level=2;
else level=1;
return level;
}
public static void printPerBit(int num){
if (num/10000>0||num<0)
return;
String str = Integer.toString(num);
for (int i = 0; i <str.length() ; i++) {
System.out.println(str.charAt(i));
}
}
public static void exchageFirstandast(int num){
int arr[] = new int[5];
int num2 =num,bit =0;
int i=0,leve =0;
leve = judegNumber(num);
while(num2!=0){
bit = num2%10;//原数对10取余 拿到最低位
arr[i++] = bit;//最低位写入数组
num2=num2/10;//去掉最低位
}//数组中的排列顺序 是从数的最低位开始,直接可以输出
for (i=0;i<leve;i++){
System.out.println(arr[i]);
}
}
//直接使用charAt方法
public static void exchageFirstandasString(int num){
String str = Integer.toString(num);
char c[]=new char[str.length()];
for (int i = 0; i <str.length() ; i++) {
c[i] = str.charAt(i);
}
for(int i= str.length()-1;i>=0;i--){
System.out.println(c[i]);
}
}