---恢复内容开始---

请问这些结果都正确吗?为什么?
我想,我们已经学会了怎样把一个循环小数化成分数.那么,回答这个问题最好的办法就是把这些简记结果都化成分数,再看这些分数结果有无区别。
聪明的读者,这个问题就请你亲自动手换算后再来回答.好吗?
【规律】
所以这些简记结果都是正确的.
一般地,同一个循环小数的循环节可以有多种简记方法.假设循环小数中有n个数字不断重复出现,那么简记后的循环节可以有n位数字,也可以有2n 位数字、3n位数字、……;循环节的第一位数字可以是不断重复出现的第一位数字,也可以是第二位数字、第三位数字…….但是,只有以重复出现的第一位数字作循环节的第一位数字,取n位数为循环节的简记方法最为简单.
【练习】
1.有人把循环小数0.787878……简记成下面的结果:
请你判定哪些是正确的,哪些是错误的.
2.对于下面的每个循环小数,请你至少写出五个简记结果.
0.464646…… 0.123123123……
3.用最简单的形式简记下列各循环小数.
0.878787…… 0.638638638……
0.4172172172…… 0.1991991991……
4.你有办法验证下面的数是相等的吗?
---恢复内容结束---


请问这些结果都正确吗?为什么?
我想,我们已经学会了怎样把一个循环小数化成分数.那么,回答这个问题最好的办法就是把这些简记结果都化成分数,再看这些分数结果有无区别。
聪明的读者,这个问题就请你亲自动手换算后再来回答.好吗?
【规律】
所以这些简记结果都是正确的.
一般地,同一个循环小数的循环节可以有多种简记方法.假设循环小数中有n个数字不断重复出现,那么简记后的循环节可以有n位数字,也可以有2n 位数字、3n位数字、……;循环节的第一位数字可以是不断重复出现的第一位数字,也可以是第二位数字、第三位数字…….但是,只有以重复出现的第一位数字作循环节的第一位数字,取n位数为循环节的简记方法最为简单.
【练习】
1.有人把循环小数0.787878……简记成下面的结果:
请你判定哪些是正确的,哪些是错误的.
2.对于下面的每个循环小数,请你至少写出五个简记结果.
0.464646…… 0.123123123……
3.用最简单的形式简记下列各循环小数.
0.878787…… 0.638638638……
0.4172172172…… 0.1991991991……
4.你有办法验证下面的数是相等的吗?
Problem D
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 102 Accepted Submission(s) : 33
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
Given A, B, and n, you are to calculate the value of f(n).
Input
Output
Sample Input
1 1 3 1 2 10 0 0 0
Sample Output
2 5
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
int a = cin.nextInt();
int b = cin.nextInt();
int n = cin.nextInt();
int[] arr = new int[100];
arr[0]=1;
arr[1]=1;
int i=0;
while(a!=0&&b!=0&&n!=0){
for( i=2;i<50;i++){ //确定循环节
arr[i]=((int)(a*arr[i-1]+b*arr[i-2]))%7;
if(arr[i]==1&&arr[i-1]==1){
break;
}
}
i--;
System.out.println(arr[(n-1)%i]);
a = cin.nextInt();
b = cin.nextInt();
n = cin.nextInt();
}
}
}
}