java 编写一个函数 报错如下: C:\>javac Test120303.java Test120303.java:14: 无法将 java.lang.String
/**【程序39】题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)*...
/**
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
*/
import java.util.*;
public class Test120303
{
public static void main(String[] argd)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个数:");
String num=sc.next();
int q;
q=num.charAt()%2;
if(q==2)
System.out.print(function1(q));
else
System.out.print(function2(q));
}
public static int function1(int i)
{
int sum=0;
int temp=0;
for(int j=1;j<=i;j++)
{
temp=1/2^i;
sum+=temp;
}
return sum;
}
public static int function2(int i)
{
int sum=0;
int temp=0;
for(int j=1;j<=i;j++)
{
temp=1/(2*i-1);
sum+=temp;
}
return sum;
}
} 展开
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
*/
import java.util.*;
public class Test120303
{
public static void main(String[] argd)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个数:");
String num=sc.next();
int q;
q=num.charAt()%2;
if(q==2)
System.out.print(function1(q));
else
System.out.print(function2(q));
}
public static int function1(int i)
{
int sum=0;
int temp=0;
for(int j=1;j<=i;j++)
{
temp=1/2^i;
sum+=temp;
}
return sum;
}
public static int function2(int i)
{
int sum=0;
int temp=0;
for(int j=1;j<=i;j++)
{
temp=1/(2*i-1);
sum+=temp;
}
return sum;
}
} 展开
4个回答
展开全部
有细节错误,而且逻辑也不对,给你改对了,你看看...
=================分割线======================
import java.util.Scanner;
public class Test {
public static void main(String[] argd) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数:");
int num = sc.nextInt();
if (num % 2 == 0)
System.out.print(function1(num));
else
System.out.print(function2(num));
}
public static double function1(int in) {//偶数
double sum = 0;
double temp = 0;
for (int i = 1;Math.pow(2,i) <= in; i++) {
temp = 1 / Math.pow(2,i);
sum += temp;
}
return sum;
}
public static double function2(int in) {
double sum = 0;
double temp = 0;
for (int i = 1; Math.pow(2,i-1) <= in;i++) {
temp = 1 /(Math.pow(2,i)-1);
sum += temp;
}
return sum;
}
}
=================分割线======================
import java.util.Scanner;
public class Test {
public static void main(String[] argd) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数:");
int num = sc.nextInt();
if (num % 2 == 0)
System.out.print(function1(num));
else
System.out.print(function2(num));
}
public static double function1(int in) {//偶数
double sum = 0;
double temp = 0;
for (int i = 1;Math.pow(2,i) <= in; i++) {
temp = 1 / Math.pow(2,i);
sum += temp;
}
return sum;
}
public static double function2(int in) {
double sum = 0;
double temp = 0;
for (int i = 1; Math.pow(2,i-1) <= in;i++) {
temp = 1 /(Math.pow(2,i)-1);
sum += temp;
}
return sum;
}
}
展开全部
q=num.charAt()%2;错了
String 里的charAt方法是需要一个参数的。具体参照API 就知道了。
顺便说一下,你判断一个数是否是偶数的逻辑也错了。
还有
System.out.print(function1(q));
else
System.out.print(function2(q));
这两个function的调用应该传q进去吗?q是对2取模后的值,肯定会是1或0.
API如下:
public char charAt(int index)返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。
如果索引指定的 char 值是代理项,则返回代理项值。
指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值位于索引 0 处。
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。
String 里的charAt方法是需要一个参数的。具体参照API 就知道了。
顺便说一下,你判断一个数是否是偶数的逻辑也错了。
还有
System.out.print(function1(q));
else
System.out.print(function2(q));
这两个function的调用应该传q进去吗?q是对2取模后的值,肯定会是1或0.
API如下:
public char charAt(int index)返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。
如果索引指定的 char 值是代理项,则返回代理项值。
指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值位于索引 0 处。
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。
参考资料: JDK API 1.6.0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你输入的输String类型的....是要强制类型转换把....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询