数学老师生病了,学校安排体育老师代课,体育老师为了考查同学们的观察力,他在黑板上写了这样一串数字:1 2 3 4 5 6 7 8 2 2 3 4 5 6 7 8 3 2 3 4 5 6 7 8 ……,100 2 3 4 5 6 7 8……
请问这串数字中第n个到底是几,你能算出来吗?
输入
一行,一个正整数n(1≤n≤10^6),表示小慧想知道这串数字中的第n个是几。
输出
一行,一个正整数,即这串数字中第n个数字。
#include <stdio.h>
int getN(int n)
{
if (n % 8 == 0) return 8;
if (n % 8 == 1) return n / 8 + 1;
return n % 8;
}
int main()
{
int n;
scanf("%d", &n);
printf("%d ", getN(n));
return 0;
}
【以下回答由 GPT 生成】
思路:观察题目中给出的数字序列,可以发现以下规律:
因此,可以通过求余数的方式来确定第n个数字所在的循环以及其在循环中的位置。
解决方案如下所示:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int cycle = (n - 1) / 8; // 求循环的次数
int position = (n - 1) % 8; // 求在循环中的位置
int digit;
if (position == 0) {
digit = cycle + 1;
} else {
digit = position + 1;
}
cout << digit << endl;
return 0;
}
代码解释:
cin
函数从标准输入中读取一个正整数n;cycle
;position
;digit
;cout
函数将结果打印到标准输出中。测试样例:
输入:25 输出:2
输入:44 输出:5
输入:100 输出:8
【相关推荐】