怎样确定循环节

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

 有人把循环小数0.535353……简记成下面的几种结果:

  

请问这些结果都正确吗?为什么?

我想,我们已经学会了怎样把一个循环小数化成分数.那么,回答这个问题最好的办法就是把这些简记结果都化成分数,再看这些分数结果有无区别。

聪明的读者,这个问题就请你亲自动手换算后再来回答.好吗?

【规律】

  

 

  

 所以这些简记结果都是正确的.

一般地,同一个循环小数的循环节可以有多种简记方法.假设循环小数中有n个数字不断重复出现,那么简记后的循环节可以有n位数字,也可以有2n 位数字、3n位数字、……;循环节的第一位数字可以是不断重复出现的第一位数字,也可以是第二位数字、第三位数字…….但是,只有以重复出现的第一位数字作循环节的第一位数字,取n位数为循环节的简记方法最为简单.

【练习】

1.有人把循环小数0.787878……简记成下面的结果:

  
    请你判定哪些是正确的,哪些是错误的.

2.对于下面的每个循环小数,请你至少写出五个简记结果.

0.464646…… 0.123123123……

3.用最简单的形式简记下列各循环小数.

0.878787…… 0.638638638……

0.4172172172…… 0.1991991991……

4.你有办法验证下面的数是相等的吗?

  

 

 

 

 

 

---恢复内容结束---

 有人把循环小数0.535353……简记成下面的几种结果:

  

请问这些结果都正确吗?为什么?

我想,我们已经学会了怎样把一个循环小数化成分数.那么,回答这个问题最好的办法就是把这些简记结果都化成分数,再看这些分数结果有无区别。

聪明的读者,这个问题就请你亲自动手换算后再来回答.好吗?

【规律】

  

 

  

 所以这些简记结果都是正确的.

一般地,同一个循环小数的循环节可以有多种简记方法.假设循环小数中有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

A number sequence is defined as follows:

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

The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.

Output

For each test case, print the value of f(n) on a single line.

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();
   }
  }
 }

}

 

转载于:https://www.cnblogs.com/qjack/p/3366534.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值