[1061]rightmost digit.cpp

来自「HDUOJ_ACM题目集合~~希望各位能用得上」· C++ 代码 · 共 45 行

CPP
45
字号
// [1061]Rightmost Digit.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;


int main()
{
	long n;
	long c, m, temp, i;
	int mark[10], num[11];
	int begin, loop;
	cin>>c;
	while (c--)
	{
		cin>>n;
		m=n%10; temp = 1; loop = 1;
		memset(mark, 0, sizeof(mark));
		for (i = 1; i <= n; i++)
		{
			temp = (temp * m) % 10;
			if (mark[temp] == 0)
			{
				mark[temp] = i;
				num[i] = temp;
			}
			else
			{
				begin = mark[temp];
				loop = i-mark[temp];
				break;
			}
		}
		if (i == n+1)
			cout<<num[n]<<endl;
		else
			cout<<num[((n-begin)%loop+begin)]<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?