南阳oj入门题-数数

/**
数数
时间限制:3000 ms  |  内存限制:65535 KB
难度:2
描述
我们平时数数都是喜欢从左向右数的,但是我们的小白同学最近听说德国人数数和我们有些不同,他们正好和我们相反,是从右向左数的。因此当他看到123时会说“321”。

现在有一位德国来的教授在郑州大学进行关于ACM的讲座。现在他聘请你来担任他的助理,他给你一些资料让你找到这些资料在书中的页数。现在你已经找到了对应的页码,要用英文把页码告诉他。

为了简化我们的问题,你只需要返回单词的大写的首字母。(数字0读成字母O)

注意:每个数字式单独读取的,因此不会出现11读成double one的情况。

输入
输入分两部分:
第一部分:一个整数T(1<=T<=1000)
第二部分:一共T行,每行为一个数字。每个数的长度不超过10位。
输出
每组输出单独占一行,输出对应的返回给德国教授的页码缩写。
样例输入
2
12
1234
样例输出
TO
FTTO
*/
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		string s;
		cin>>s;
		for(int i=s.size()-1;i>=0;i--)
		{
			switch(s[i])
			{
				case '0':
				case '1':
					cout<<"O";break;
				case '2':
				case '3':
					cout<<"T";break;
				case '4':
				case '5':
					cout<<"F";break;
				case '6':
				case '7':
					cout<<"S";break;
				case '8':
					cout<<"E";break;
				case '9':
					cout<<"N";break;
			}
		}	
		cout<<endl;
	}	
	return 0;
}

 

### XTU OJ 1402 平方数及其倍数目解析 #### 目描述 XTU OJ平台上的问1402涉及处理平方数及其倍数。具体来说,该问可能要求识别并操作特定范围内的平方数及其整数倍。 #### 解思路 对于此类问,可以采用筛选方法来预先计算出一定范围内所有的平方数,并标记其倍数。通过这种方法可以在后续查询时快速响应。一种常见的做法是利用数组作为标志位记录哪些数值已经被确认为某个平方数的倍数[^1]。 给定代码片段展示了如何使用布尔型数组`b[]`初始化所有位置为真值(表示可能是目标数),随后遍历这些索引并将符合条件的位置设为已访问状态。这里需要注意的是,此段程序逻辑存在错误,因为直接设置`b[2*i+1]=b[3*i+1]=1`并不能正确反映平方数特性;正确的算法应该基于实际平方根进行迭代更新相应倍数的状态。 #### 代码实现 下面是一个修正后的C++版本解决方案: ```cpp #include <iostream> using namespace std; const int MAX = 1e6; bool isSquareMultiple[MAX]; int main(){ fill(isSquareMultiple, isSquareMultiple + MAX, false); for(long long i=2; i*i<MAX; ++i){ if(!isSquareMultiple[i]){ for(long long j=i*i; j<MAX; j+=i*i){ isSquareMultiple[j] = true; } } } // 假设输入n代表要查询的最大界限 int n; cin >> n; for(int k=1; k*k<=n; ++k){ cout << "The square of " << k << ": "; for(int m=k*k; m<=n; m+=(k*k)){ cout << m << ' '; } cout << '\n'; } } ``` 上述代码实现了对不超过指定上限内所有自然数是否属于任何正整数平方数之倍数性质进行了预处理,并能够按照需求输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值