没有合适的资源?快使用搜索试试~ 我知道了~
zhidd#ZXBlog#Codeforces - 1107B. Digital root & 1107C. Brutality
需积分: 0 0 下载量 78 浏览量
2022-07-25
14:34:38
上传
评论
收藏 5KB MD 举报
温馨提示
试读
Codeforces - 1107B. Digital root & 1107C. Brutality(规律 & 贪心)Codeforces - 1107B.
资源推荐
资源详情
资源评论
## Codeforces - 1107B. Digital root & 1107C. Brutality(规律 & 贪心)
* [Codeforces - 1107B. Digital root](#codeforces---1107b-digital-root)
* [Codeforces - 1107C. Brutality](#codeforces---1107c-brutality)
***
### Codeforces - 1107B. Digital root
#### [题目链接](https://codeforces.com/problemset/problem/1107/B)
> https://codeforces.com/problemset/problem/1107/B
#### 题目
一个数`x`的数根的定义`S(x)`是如题目中给出的样子(就是一个数不断的将各个位上的数相加得到一个新的数(直到这个数为个位数)),现在给你两个数`k、x`,要你求出第`k`个数根是`x`的非负整数。
![在这里插入图片描述](images/1107B_t.png)
#### 解析
想半天没有思路,其实是一道找规律的水题。。
先将前面的结果打表,求出每个数对应的数根,即可以发现规律:
* 是一个以`9`为周期的循环,每个周期的结果都是`1 ~ 9`;
* 于是很容易得到结果`(k- 1) * 9 + x`;
![在这里插入图片描述](images/1107B_s.png)
结果代码以及打表代码:
```java
import java.io.*;
import java.util.*;
public class Main {
static long getSum(long p){
if(p == 0)
return 0;
return getSum(p/10) + p%10;
}
static long getRoot(long p){
if(p < 10)
return p;
return getRoot( getSum(p) );
}
static void test(){
// Bymeter
for(int i = 0; i < 100; i++)
System.out.println( i + " " + getRoot(i) );
点击阅读更多
资源评论
笨爪
- 粉丝: 43
- 资源: 333
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功