游客 Signup | Login
中文 | En

2005 - 简单的计算题

喵呜的数学差到简直让人难以忍受的地步……10以上的数字都不懂,遇到数字直接mod 9……

结果悲催的遇到了个数学题,其实,找不到人抄答案有时候是很蛋疼的,题目是这样的:给个n,求Count(n),求法如下:

首先给出集合S={1,2,3,…,k},k为n的位数,之后求出S的子集。假设子集为{a1,a2,…,at},则删去第a1,a2,…,at位,之后剩下的数字拼起来可以组成一个数字,则对于S的2^n子集都做如上的事情,得出2^n数字,将这些数字加起来的结果就是Count(n).

但是由于喵呜遇到数字直接就mod 9了,所以请输出Count(n)%9的值,让他抄~

举个例子,假设n=123,则Count(n)=123+12+23+13+1+2+3+0=177,之后mod9得到6,则输出6.

Input

一个数n,n的位数<=50

Output

每个测试数据输出一个数Count(n)%9,每个测试数据占一行。

Examples

Input

123
8

Output

6
8

Solution C++

#include <bits/stdc++.h>
using namespace std;

int main() {
	string s;
	while (cin >> s) {
		int sum = 0;
		for (int i = 0; i < s.size(); i ++) {
			sum += s[i] - '0';
		}
		
		int res = sum % 9;
		for (int i = 1; i <= s.size() - 1; i ++) {
			res = res * 2 % 9;
		}
		cout << res << endl;
	}

	return 0;
}


/*
n位数: 
挑m个数字有C(n, m)种方法,共有C(n, m) * m个数字,
对应n个数字重复C(n, m) * m / n遍,等于C(n - 1, m - 1)
C(n - 1, 0) + C(n - 1, 1) + C(n - 1, 2) + ...... + C(n - 1, n - 1) = 2 ^ (n - 1)
*/
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题