每日一题
题目
题目描述:
输入格式
每行输入包含一个整数 n(1≤n≤10
6
),表示斐波那契数的下标。当 n 为 0 时输入结束。
输出格式
针对每行输入的 n ,如果 F(n) 可以被 3 整除,请在单独一行输出 “yes”,否则输出 “no”。
输入输出样例
输入样例1
1
2
3
4
5
0
输出样例1
no
yes
no
no
no
Java写法:
import java.util.*;
class Main {
public static void main(String[] args) {
int n = 0;
int num = 0;
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
num = getF(sc.nextInt());
if (num == 0) {
break;
}
if(num % 3 == 0){
System.out.println("yes");
}else {
System.out.println("no");
}
sc.nextLine();
}
sc.close();
}
public static int getF(int n){
if(n == 0){
return 7;
}else if(n == 1){
return 11;
}else {
return getF(n - 1) + getF(n - 2);
}
}
}
Tips:
C写法:
#include <stdio.h>
int getF(int n) {
if (n == 0) {
return 7;
} else if (n == 1) {
return 11;
} else {
return getF(n - 1) + getF(n - 2);
}
}
int main() {
int n, num;
while (scanf("%d", &n) == 1) {
num = getF(n);
if (num % 3 == 0) {
printf("yes\n");
} else {
printf("no\n");
}
}
return 0;
}
Tips:
C++写法:
#include <iostream>
using namespace std;
int getF(int n) {
if (n == 0) {
return 7;
} else if (n == 1) {
return 11;
} else {
return getF(n - 1) + getF(n - 2);
}
}
int main() {
int n, num;
while (cin >> n) {
num = getF(n);
if (num % 3 == 0) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
}
return 0;
}
Tips:
Python写法:
def getF(n):
if n == 0:
return 7
elif n == 1:
return 11
else:
return getF(n - 1) + getF(n - 2)
while True:
try:
n = int(input().strip())
num = getF(n)
if num % 3 == 0:
print("yes")
else:
print("no")
except EOFError:
break
Tips:
PHP写法:
<?php
function getF($n) {
if ($n == 0) {
return 7;
} else if ($n == 1) {
return 11;
} else {
return getF($n - 1) + getF($n - 2);
}
}
while ($n = trim(fgets(STDIN))) {
$num = getF($n);
if ($num % 3 == 0) {
echo "yes\n";
} else {
echo "no\n";
}
}
?>
Tips: