PAT甲级1015笔记记录 测试点3未通过

PAT甲级1015笔记记录 测试点3未通过

什么水题啊啊啊啊啊啊啊我错了啊啊啊啊啊啊我过不去第三个点啊啊啊啊啊啊啊啊什么玩意儿啊啊啊啊啊啊啊啊啊为什么第三个过不去啊啊啊啊啊啊啊你是智障嘛啊啊啊啊啊啊
本智障第三个测试点过不去代码如下!

#include<stdio.h>
#include<string>
#include<iostream>
#include<vector>
using namespace std;
#define MAXSIZE 30
typedef long long LL;



int toDec(string str, int index) {
	//转换成十进制
	LL sum = 0;
	LL tempindex = 1;
	for (int i = str.size()-1; i >=0 ; i--,tempindex*=index)
		sum += tempindex*(str[i]-'0');	
	return sum;
}


//十进制转换成以toIndex为基数的数值
int toIndexNum(string str, int toIndex) {
	LL left = toDec(str, 10), temp_remain = 0;//剩下的未处理完的数值、余数
	while (left >= toIndex) {
		temp_remain = temp_remain * 10 + (left/toIndex);
		left = left%toIndex;
	}
	temp_remain = temp_remain * 10 + (left%toIndex);
	return temp_remain;
}




//判断是否为素数
bool prime(int checknum) {
	int i = 2;
	while (i < checknum) {
		if (checknum%i == 0)break;
		i++;
	}

	if (i == checknum)return true;
	else return false;
}



bool reversiblePrime(string str,int index) {
	
	string str2=to_string(toIndexNum(str,index));///?????
	string tempstr = str2;
	int k = 0;
	for (int i = str2.size() - 1; i >= 0; i--) {
		tempstr[k] = str2[i]; k++;////??????????????????????????????
	}
	if (prime(toDec(tempstr, index)))return true;
	else return false;
}



int main() {
	
	string N;///100000
	vector<string> E;
	int D;
	while (true)
	{
		cin >> N;
		
		if (N[0]=='-')break;
		cin >> D;
		if (toDec(N,10)!=1 && toDec(N, 10) != 0&& reversiblePrime(N, D))
			E.push_back("Yes");
		else E.push_back("No");

	}
	int e = 0;
	while (e<E.size())
	{
		cout << E[e]; e++;
		if (e < E.size())cout << endl;
	}
	return 0;
}

1、原题参照PAT

可逆转素数是指在一个素数中,翻转过来它仍然是一个素数。比如73反过来37也是一个素数。
现在给你任意两个正整数N(<10的5次方) and D (1<D≤10),你被期待解出如果N是一个以D为基数的可逆转素数。
输入:每个用例占据一行包含两个整数N和D,这个输入以negative N结束。(负数N结束??)
输出:每一行打印Yes 或者No;

2、单词

  • Reversible -adj. 可逆的;可撤消的;可反转的 -n. 双面布料
  • Prime [praɪm] -n. (prime) 盛年,鼎盛时期 -adj. (prime) 主要的,首要的;最好的;典型的;最适宜的;素数的 -v. (prime) 使准备好 -n. (美、法)普赖姆(人名)
  • Reverse -v. 颠倒;撤销;反转;交换;放弃立场;倒车;打对方付费的电话;(使铅字、图案)印成白或浅色 -n. 逆向;相反;背面;倒档;失败;(美橄)横式传球;(翻开书的)左手页 -adj. 相反的;背面的;颠倒的;反身的;(地层)逆断的
  • Negative -adj. [数] 负的;消极的;否定的;阴性的 -n. 否定;负数;[摄] 底片 - vt. 否定;拒绝
发布了16 篇原创文章 · 获赞 0 · 访问量 275
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览