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;
}
}
展开
 我来答
山中小馆
2011-12-03 · 干一行,爱一行,专注零售近十载
山中小馆
采纳数:1082 获赞数:6811

向TA提问 私信TA
展开全部
有细节错误,而且逻辑也不对,给你改对了,你看看...
=================分割线======================
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;
}
}
whl401765060
2011-12-03 · 超过10用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:19.4万
展开全部
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 参数为负或小于此字符串的长度。

参考资料: JDK API 1.6.0

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aikangs
2011-12-03 · TA获得超过482个赞
知道小有建树答主
回答量:465
采纳率:100%
帮助的人:224万
展开全部
你输入的输String类型的....是要强制类型转换把....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bimansk5
2011-12-03
知道答主
回答量:11
采纳率:0%
帮助的人:1.8万
展开全部
vsdsvs
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式