1006
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
#include <stdio.h>
#include <map>
#include <iostream>
#include <stack>
using namespace std;
void function_gewei(int num){
for(int i =1;i<=num;i++){
cout<<i;
}
}
int main(){
int num;
cin>>num;
stack <int> st;
int m = 0;
while(num!=0){
m++;
st.push(num%10);
num /=10;
}
int temp;
while(!st.empty()){
temp = st.top();
if (m == 3){
for (int i=0;i<temp;i++){
cout<<'B';
}
}
else if (m == 2){
for (int i=0;i<temp;i++){
cout<<'S';
}
}
else {
function_gewei(temp);
}
m--;
st.pop();
}
return 0;
}
总结陈词
暂无
1007
关于素数判定,可以参考https://blog.csdn.net/huang_miao_xin/article/details/51331710
#include <stdio.h>
#include <map>
#include <iostream>
#include <stack>
#include <queue>
#include <math.h>
using namespace std;
bool isprime( int num )
{
if(num ==2|| num==3 ){
return 1 ;
}
if(num %6!= 1&&num %6!= 5){
return 0 ;
}
double tmp =sqrt((float)num);
for(int i= 5;i <=tmp; i+=6 ){
if(num %i== 0||num %(i+ 2)==0 ){
return 0 ;
}
}
return 1 ;
}
int main(){
int max_num;
cin>>max_num;
queue <int> que;
for (int i=2;i<=max_num;i++){
if (isprime(i)){que.push(i);}
}
int c=0;
int first,second;
while(!que.empty()){
first = que.front();
que.pop();
if (que.empty()){break;}
second = que.front();
if (first - second == -2){c++;}
}
cout<<c;
return 0;
}
总结陈词
1、上述素数判定方法是最快的方法
2、sqrt取二次根号函数,参数必须是float,可以强制类型转换。