请教!!JAVA求一个数的三次方,这样能求出来吗???
抱歉各位大侠,高手,我打错字了,是求---3进制----!!!麻烦指点!!!!谢谢publicclassTest{publicvoidmethod(inta){intsi...
抱歉各位大侠,高手,我打错字了,是求--- 3进制---- !!!麻烦指点!!!!谢谢
public class Test {
public void method(int a) {
int size = 1; // ---------------------在整个求解的所用的思路??????
int shang = 3; // --------------------在整个求解的所用的思路??????
while (a >= shang) { ------------------在整个求解的所用的思路??????
++size; ----------------------------能帮我详细解释这几句吗??谢谢
shang = shang * 3; -----------------------------
}
int[] arry = new int[size];
int i = 0;
while (a != 0) {
arry[i] = a % 3;
a = a / 3;
i++;
}
// for(Integer ii : arry){
for (int k = arry.length - 1; k >= 0; k--) {
System.out.print(arry[k]);
System.out.print("\t");
}
}
public static void main(String[] args) {
Test t = new Test();
t.method(103);
}
}
=====抱歉各位大侠,高手,我打错字了,是求--- 3进制---- !!!麻烦指点!!!!谢谢 展开
public class Test {
public void method(int a) {
int size = 1; // ---------------------在整个求解的所用的思路??????
int shang = 3; // --------------------在整个求解的所用的思路??????
while (a >= shang) { ------------------在整个求解的所用的思路??????
++size; ----------------------------能帮我详细解释这几句吗??谢谢
shang = shang * 3; -----------------------------
}
int[] arry = new int[size];
int i = 0;
while (a != 0) {
arry[i] = a % 3;
a = a / 3;
i++;
}
// for(Integer ii : arry){
for (int k = arry.length - 1; k >= 0; k--) {
System.out.print(arry[k]);
System.out.print("\t");
}
}
public static void main(String[] args) {
Test t = new Test();
t.method(103);
}
}
=====抱歉各位大侠,高手,我打错字了,是求--- 3进制---- !!!麻烦指点!!!!谢谢 展开
5个回答
展开全部
public class Test {
public void method(int a) {
int size = 1;
int shang = 3;
//这个方法是判断你的a换算成3进制有几位数,我们拿10进制的来比较
//10就是10的1次方,100是10的2次方,1000是10的3次方
while (a >= shang) {// 103>=3 103>=9 103>=27 103>=81 103<243 quit
++size; // size=2 size=3 size=4 size=5
shang = shang * 3; //shang=9 RE shang=27 RE shang=81 RE shang=243 RE
}
//有几位数就建立多大的数组
int[] arry = new int[size];//size=5
int i = 0;
//该方法求各个位置上的数十多少,还是拿10进制来比较
//321%10余1个位就是1,然后除于10,等于32
//32%10余2十位就是2,再除于10,等于3
//3%10余3百位就是3,再除于10,等于0.3,int类型自动取整,等于0
//退出循环
while (a != 0) { //103!=0 34!=0 11!=0 3!=0 1!=0 0==0 quit
arry[i] = a % 3; //103%3=1 34%3=1 11%3=2 3%3=0 1%3=1
a = a / 3; //a=103/3=34 RE 34/3=11 RE 11/3=3 RE 3/3=1 RE 1/3=0
i++;
}
// for(Integer ii : arry){ //这是什么意思?
for (int k = arry.length - 1; k >= 0; k--) { //数组逆向输出
System.out.print(arry[k]);
//因为我们求余是先求的个位,所以要逆向输出,输出1 0 2 1 1
//1*81+0*27+2*9+1*3+1*1=81+18+3+1=103
System.out.print("\t");
}
}
public static void main(String[] args) {
Test t = new Test();
t.method(103);
//这个方法你再声明一个变量m,m等于几就可以把任意10进制数转化为m进制
public void method(int a) {
int size = 1;
int shang = 3;
//这个方法是判断你的a换算成3进制有几位数,我们拿10进制的来比较
//10就是10的1次方,100是10的2次方,1000是10的3次方
while (a >= shang) {// 103>=3 103>=9 103>=27 103>=81 103<243 quit
++size; // size=2 size=3 size=4 size=5
shang = shang * 3; //shang=9 RE shang=27 RE shang=81 RE shang=243 RE
}
//有几位数就建立多大的数组
int[] arry = new int[size];//size=5
int i = 0;
//该方法求各个位置上的数十多少,还是拿10进制来比较
//321%10余1个位就是1,然后除于10,等于32
//32%10余2十位就是2,再除于10,等于3
//3%10余3百位就是3,再除于10,等于0.3,int类型自动取整,等于0
//退出循环
while (a != 0) { //103!=0 34!=0 11!=0 3!=0 1!=0 0==0 quit
arry[i] = a % 3; //103%3=1 34%3=1 11%3=2 3%3=0 1%3=1
a = a / 3; //a=103/3=34 RE 34/3=11 RE 11/3=3 RE 3/3=1 RE 1/3=0
i++;
}
// for(Integer ii : arry){ //这是什么意思?
for (int k = arry.length - 1; k >= 0; k--) { //数组逆向输出
System.out.print(arry[k]);
//因为我们求余是先求的个位,所以要逆向输出,输出1 0 2 1 1
//1*81+0*27+2*9+1*3+1*1=81+18+3+1=103
System.out.print("\t");
}
}
public static void main(String[] args) {
Test t = new Test();
t.method(103);
//这个方法你再声明一个变量m,m等于几就可以把任意10进制数转化为m进制
展开全部
class Test
{
public int get(int a ,int b ){//这个方法用于接收两个参数,第一个用于求多少次方的那个数,
//第二个则是用于来表示你来求多少次方
//如 get(2,5);意思是求二的五次方
int result=a;
for(int i=1;i<b;i++)
{
result=result*a;
}
return result;
}
public static void main(String[] args)
{
System.out.println(new Test().get(3,3));
}
}
{
public int get(int a ,int b ){//这个方法用于接收两个参数,第一个用于求多少次方的那个数,
//第二个则是用于来表示你来求多少次方
//如 get(2,5);意思是求二的五次方
int result=a;
for(int i=1;i<b;i++)
{
result=result*a;
}
return result;
}
public static void main(String[] args)
{
System.out.println(new Test().get(3,3));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int size = 1; // ----------标识可以除以几回3,作为后面取模数组的大小
int shang = 3; // ---------用来与所给的数字进行比较
while (a >= shang) {
++size; ----------对a可以除以3的次数累加
shang = shang * 3; ------------乘以3后再与a进行比较
}
int[] arry = new int[size]; -----------对a依次取3的模的记录数组
int i = 0; -----------计数,但以后没用到,基本没用
while (a != 0) {
arry[i] = a % 3; -----------记录a依次除以3后的余数对3的模
a = a / 3; -----------对a依次除以3
i++; -----------没用
}
输入103,最后输出应为1 1 2 2
int shang = 3; // ---------用来与所给的数字进行比较
while (a >= shang) {
++size; ----------对a可以除以3的次数累加
shang = shang * 3; ------------乘以3后再与a进行比较
}
int[] arry = new int[size]; -----------对a依次取3的模的记录数组
int i = 0; -----------计数,但以后没用到,基本没用
while (a != 0) {
arry[i] = a % 3; -----------记录a依次除以3后的余数对3的模
a = a / 3; -----------对a依次除以3
i++; -----------没用
}
输入103,最后输出应为1 1 2 2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
求一个数的三次方这个程序是不能求出来的~而且求三次方为什么这么复杂?你就直接的乘这个数就可以了~这个程序不是在求三次方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-09-13
展开全部
求一个数的三次方只需将此数连续乘三次即可, 你写的是什么?怎么连array都用上了,而且你的array中只会在a[0]存一个数。。。还写了个死循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询