以下是我编写的用于计算第n个素数的代码.我初始化arr = [2,3,5]; 和prime(arr,n)应该修改arr以包含前n个素数.但arr并不反映prime(arr,n)执行后的变化.我读到列表作为引用类型传递,所以下面的代码中的问题是什么.t表示必须进行验证的测试用例的数量.
该程序导致错误,表明数组索引超出了arr的范围.
import sys;
def prime (arr,n):
while(len(arr)< n):
num=arr[len(arr)-1]+1;prime=0;
while(prime==0):
prime = 1
for val in arr:
if(num%val==0):
prime=0;
break;
if(prime == 1):
print "hello";
arr = arr + [num];print arr; print "--";
else:
num = num+1;
t=raw_input();
t=int(t);
arr=[2,3,5];
ans =[];
for v in range (0,t):
n = raw_input();
n = int(n);
if(n<=len(arr)):
ans = ans + [arr[n-1]];
else:
prime(arr,n);print arr;print"arr was printed"
ans= ans + [arr[n-1]];
print ans;print 'ans ';
Run Code Online (Sandbox Code Playgroud)
以下是上述代码的示例运行
>>>
1
4 …Run Code Online (Sandbox Code Playgroud) 在学习Haskell时,我想知道什么时候会执行IO操作.在几个地方我找到了这样的描述:
"I/O操作的特殊之处在于,如果它们属于主要功能,则执行它们."
但是在下面的示例中,'greet'永远不会返回,因此不应打印任何内容.
import Control.Monad
main = greet
greet = forever $ putStrLn "Hello World!"
Run Code Online (Sandbox Code Playgroud)
或许我应该问:"落入主要功能"是什么意思?
我正在通过实现一些数据结构来练习我对ADT的了解,即使大多数已经存在.使用Stacks,我读过很多书和其他文档,当你尝试添加一个元素但堆栈已满时,会讨论堆栈抛出错误.在java实现(或任何其他)中,我应该专门跟踪最大堆栈大小(来自构造函数),检查是否达到该大小,如果是,则抛出溢出异常?或者不是很重要?
我在使用valgrind中产生错误的这一小部分代码时遇到了麻烦.当我评论代码并运行valgrind时,我没有得到任何内存泄漏或错误,所以这个循环应该是原因:
///Print the top users
const char* str;
for (int i = 0; i < count; i++) {
if (FinalArray[i].Score == -1) {
break;
}
int id = UserGetID(user);
char* name = UserGetName(user);
int finalID = UserGetID(FinalArray[i].user);
char* finalName = UserGetName(FinalArray[i].user);
assert(finalName!= NULL && name !=NULL);
str = mtmSuggestFriends(id, name, finalID, finalName);
if (str == NULL) {
return MAIN_ALLOCATION_FAILED;
}
// fprintf(fileOutput, str);
}
Run Code Online (Sandbox Code Playgroud)
在这个循环之后,我只返回一个枚举说明成功.
以下是Valgrind中的错误:
==8779== Use of uninitialised value of size 8
==8779== at 0x4037C2: UserGetName (in /u1/023/mtm/ex2/RUN/mtm_isocial) …Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我正在使用这行代码:
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
Set<String> set = myPrefs.getStringSet("list", new HashSet<String>());
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
对于SharedPreferences类型,方法getStringSet(String,HashSet)未定义
为什么我会收到此错误?提前致谢.