1105
#include<bits/stdc++.h>
using namespace std;
string s1,s2,s,r;
int main()
{
cin>>s1>>s2;
s=s1+s2;
int i;
for(i=0;i<s.size();i++){
if(r.find(s[i])==-1)r=r+s[i];
}
cout<<r;
}
1108
#include<bits/stdc++.h>
using namespace std;
//10进制转2进制
int n;
string r = "";//存放转换结果
int main(){
cin>>n; //当n!=0循环
while(n != 0){
//cout<<n%2;//取余
r = char(n%2+'0') + r;
n=n/2;//除2
}
//特判输入为0的情况
if(r == "") cout<<0;
else cout<<r;
return 0;
}
1109
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,a,b,c,d;//千位,百位,十位,个位
cin>>n;
a = n/1000;
b = n/100%10;
c = n%100/10;
d = n%10;
a = (a+5)%10;
b = (b+5)%10;
c = (c+5)%10;
d = (d+5)%10;
cout<<d<<c<<b<<a;
return 0;
}
1110
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
for(int i=1;i<=n;i=i+2){
sum+=i;
}
cout<<sum;
return 0;
}
1112
#include <bits/stdc++.h>
using namespace std;
int main() {
string a;//在指定串里查找
string b;//要查找的串
string c;//要替换成的新串
string d;
getline(cin, a);
getline(cin, b);
getline(cin, c);
//查找指定的串
int pos;
pos = a.find(b);
while (pos != -1) { //pos=-1 说明没有找到b字符串
a.replace(pos, b.length(), c);//用新的串替换掉指定的串
pos=pos+c.length();
pos = a.find(b,pos); //从下一个下标pos开始查有没有b字符串,而不是从头开始查
}
cout <<a << endl;
return 0;
}
1115
#include <iostream>
#include <iomanip>
using namespace std;
//将字符转化成对应的数字
int charToNum(char a){
return a-48;
}
int main(int argc, char *argv[]) {
char a[200];
cin>>a;
int sum=0;
for (int i=0; a[i]!='\0'; i++) {
sum += charToNum(a[i]);
}
cout<<sum<<endl;
}
1118
#include<iostream>
using namespace std;
int main()
{
int x,y;
int a,b,c,d,e,f,g,p;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
p=i*i;
if(1<p/1000000<10)
{
a=p/1000000;
b=p/100000%10;
c=p/10000%10;
d=p/1000%10;
e=p/100%10;
f=p/10%10;
g=p%10;
if(a!=b && a!=c && a!=d && a!=e && a!=f &&a!=g)
{
if(b!=c && b!=d && b!=e && b!=f && b!=g&& d!=g)
{
if(c!=d && c!=e && c!=f && c!=g && d!=e && d!=f)
{
if(e!=f && e!=g && f!=g)
{
cout<<i<<endl;
}
}
}
}
}
} }
1119
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
int sum=0;
cin>>n;
while(n){
sum+=n%10;
n/=10;
}
cout<<sum;
return 0;
}
1121
#include<iostream>
using namespace std;
int main(){
int n=0x7fffffff/*强制扩大*/,m=0;
cin>>n;
while(n!=0)
{
m=m*10+n%10;
n/=10;
}
cout<<m;
return 0;
}
1123 ,1130都过代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string sa,sb="+";
cin>>sa;
sb+=sa;sb+="+";
int sum=0,len=sb.size(),t=0,num=0,t1=0,t2=0;
for(;true;){
t1=sb.find("+",t1);
t1++;
t2=sb.find("+",t1);
string sc=sb.substr(t1,t2-t1);
istringstream st(sc);
st>>num;
sum+=num;
t1=t2;
if(t2+1==len){
cout<<sum;
return 0;
}
}
return 0;
}
1127
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[9999];
cin>>n;
string s[9999];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
stringstream t;
t<<a[i];
t>>s[i];
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(s[i]+s[j]<s[j]+s[i]){
string t1;
t1=s[j];
s[j]=s[i];
s[i]=t1;
}
}
}
for(int i=0;i<n;i++){
cout<<s[i];
}
return 0;
}
1136
#include<iostream>
using namespace std;
int m,n;
int main()
{
cin>>m>>n;
for(int i=m;i<=n;i++)
{
int c=0;
for(int j=1;j<=i/2;j++)
{
if(i%j==0)c+=j;
}
if(c==i)cout<<i<<endl;
}
}
1148
#include<iostream>
using namespace std;
int main()
{
int n,c=0,c2=0;
cin>>n;
for(int i=n;i>=1;i--)
{
c2=0;
for(int j=i;j>=1;j--)
{
c2+=j;
}
c+=c2;
}
cout<<c;
}
1157
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n],MIN=32567,MIX;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]<MIN)
{
MIN=a[i];
MIX=i;
}
}
int t;
t=a[MIX];
a[MIX]=a[1];
a[1]=t;
cout<<MIX<<endl;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
}
1163
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,i,a[10005],sum=0,weizhi,max=-10000;
cin>>n;
for(i=1; i<=n; i++) {
cin>>a[i];
}
for(i=1; i<=n; i++) {
sum=a[i]+a[i+1]+a[i+2]+a[i+3];
if(sum>max) {
max=sum;
weizhi=i;
}
}
cout<<max<<endl<<weizhi;
return 0;
}
1169
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[11];
for(int i=1;i<=10;i++)
cin>>a[i];
// 进行排序
for (int i = 1; i < 10; i++) // 当前的位置
{
for (int j = i + 1; j <= 10; j++) // 将当前位置的元素 与 后面的所有元素一一比较
{
if (a[j] < a[i]) // 如果后面的元素比当前元素小
{
// 交换他们的值
int t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
for (int i = 10; i >= 1; i--)
cout << a[i] << ' ';
return 0;
}
1173
#include<iostream>
using namespace std;
int n,a[15],cnt=1;
int main()
{
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
for(int i=1;i<n-1;i++)if(a[i]>a[i-1]&&a[i]>a[i+1] || a[i]<a[i-1]&&a[i]<a[i+1]) cnt++;
cout<<cnt;
}
1178
#include<bits/stdc++.h>
using namespace std;
int n,a[10];//a[10]表示数字0-9
int main(){
cin>>n;
for(int i=1,k; i<=n; i++)//从第一页开始
{
k=i;//i是循环用的,所以要用变量代替i
while(k)
a[k%10]++,k/=10;//常规的数字拆分,a[k%10]++就是把k的每位数字载入到a[10]也就是a[0]-a[9]里面
}
for(int i=0; i<10; i++)
cout<<a[i]<<endl;//把载入完的数组分别输出就无了
return 0;
}
1184
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][n],x=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<setw(3)<<x;
x++;
}
cout<<"\n";
}
}
1186
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][n],b=1,x=1;
for(int i=1;i<=n;i++)
{
b=i;
x=b;
for(int j=1;j<=n;j++)
{
cout<<setw(3)<<x;
x+=n;
}
cout<<"\n";
}
}
1188
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][n],x=n*n;
for(int i=n;i>=1;i--)
{
for(int j=1;j<=n;j++)
{
cout<<setw(3)<<x;
x--;
}
cout<<"\n";
}
}
1190
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][n],x=1;
for(int i=1;i<=n;i++)
{
cout<<" ";
for(int j=1;j<=n;j++)
{
if(j==x)cout<<1<<" ";
else cout<<0<<" ";
}
cout<<"\n"; x++;
}
}
1191
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][n],x=n;
for(int i=1;i<=n;i++)
{
cout<<" ";
for(int j=1;j<=n;j++)
{
if(j==x)cout<<1<<" ";
else cout<<0<<" ";
}
cout<<"\n"; x--;
}
}
1192
#include<bits/stdc++.h>
using namespace std;
int a[1001][1001],n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
int x=i-1;
for(int j=1;j<=n;j++){
a[i][j]=j+x;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<setw(3)<<a[i][j];
}
cout<<"\n";
}
}
1209
#include<bits/stdc++.h>
using namespace std;
int n,a[125][125];
int main()
{
cin>>n;
int a1=1,a2=2*n+1;
int b1=1,b2=2*n+1;
int num=n;
while(a1<=a2)
{
for(int i=a1;i<=a2;i++)
{
for(int j=b1;j<=b2;j++)
{
a[i][j]=num;
}
}
a1++;a2--;
b1++;b2--;
num--;
}
for(int i=1;i<=2*n+1;i++)
{
for(int j=1;j<=2*n+1;j++)
{
cout<<setw(2)<<a[i][j];
}
cout<<endl;
}
}
1224
#include <bits/stdc++.h>
using namespace std;
int n,m,x,y;//B点的位置(n,m) C马的位置(x,y)
int a[30][30];
int sum=0;
void dfs(int x,int y){
//m和马的控制点走不通
if(a[x][y]==0)return ;
//走到地图外面则结束
if(x>n || y>m)return ;
//走到(n,m),则结束
if(x==n&&y==m){
sum++;
return ;
}
//注意,因为不可能走重复的位置,所以没有回溯
dfs(x+1,y);//向下走
dfs(x,y+1);//向右走
}
int main(){
cin>>n>>m>>x>>y;
fill(a[0],a[0]+30*30,1);//默认全部的位置都是1
//标记马和马控制点的位置为0,表示从(1,1)到达这些位置的路径数为0
//标记马的位置
a[x][y]=0;
//标记8个控制点的位置,注意可能会越界,如果越界则忽略
if(x-1>=0&&y-2>=0)a[x-1][y-2]=0;//p6
if(x-2>=0&&y-1>=0)a[x-2][y-1]=0;//p5
if(x-2>=0&&y+1<=m)a[x-2][y+1]=0;//p4
if(x-1>=0&&y+2<=m)a[x-1][y+2]=0;//p3
if(x+1<=n&&y+2<=m)a[x+1][y+2]=0;//p2
if(x+2<=n&&y+1<=m)a[x+2][y+1]=0;//p1
if(x+2<=n&&y-1>=0)a[x+2][y-1]=0;//p8
if(x+1<=n&&y-2>=0)a[x+1][y-2]=0;
dfs(0,0);
cout<<sum;
return 0;
}
1011,1226
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n==1)
{
cout<<"*";
return 0;
}
for(int i=1;i<=n;i++){//行
for(int j=1;j<=n-i;j++){//输出空格
cout<<' ';
}
if(i==1){
for(int j=1;j<=n;j++){//输出星星
cout<<'*';
}
}else{
cout<<'*';
for(int j=1;j<=n+(i-2)*2;j++){//输出空格
cout<<' ';
}
cout<<'*';
}
cout<<endl;
}
//第二段
for(int i=1;i<=n-2;i++){//行
for(int j=1;j<=i;j++){//输出空格
cout<<' ';
}
cout<<'*';
for(int j=1;j<=n+(n-i-2)*2;j++){//输出空格
cout<<' ';
}
cout<<'*';
cout<<endl;
}
for(int j=1;j<=n-1;j++){//输出空格
cout<<' ';
}
for(int j=1;j<=n;j++){//输出星星
cout<<'*';
}
return 0;}
1230
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a;
b=(a+1)/2;
for(int i=b;i>=1;i--)
{
for(int j=1;j<=i;j++)
{
cout<<"*";
}
cout<<"\n";
}
for(int i=2;i<=b;i++)
{
for(int j=1;j<=i;j++)
{
cout<<"*";
}
cout<<"\n";
}
}
1238
#include<iostream>
using namespace std;
int main()
{
int o;
cin>>o;
unsigned long long a[717]={0,1,1};
for(int i=3;i<=o;i++)
{
a[i]=a[ i - 2 ]+a[ i - 1 ];
}
cout<<a[o];
}
1244
#include<iostream>
using namespace std;
int main()
{
int a,e,v=0;
cin>>a;
e=a;
while (e%2==0)
{
e=e/2;
v++;
}
cout<<v;
}
1249
#include<iostream>
using namespace std;
int main()
{
for(int i=1;i<=36;i++)
{
for(int j=1;j<=36;j++)
{
for(int k=0;k<=36;k+=2)
{
if(i*4+j*3+k/2==36 && i+j+k==36) cout<<i<<' '<<j<<' '<<k;
}
}
}
}
1249
#include<iostream>
using namespace std;
int main()
{
for(int i=1;i<=36;i++)
{
for(int j=1;j<=36;j++)
{
for(int k=0;k<=36;k+=2)
{
if(i*4+j*3+k/2==36 && i+j+k==36) cout<<i<<' '<<j<<' '<<k;
}
}
}
}
1250
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<=30;i++)
for(int j=0;j<=30;j++)
for(int k=0;k<=30;k++)
if(i*3+j*2+k==50 && i+j+k==30)
cout<<i<<' '<<j<<' '<<k<<"\n";
}
1251
#include<iostream>
using namespace std;
int main()
{
for(int a=1;a<=130;a++)
{
for(int b=1;b<=130;b++)
{
for(int c=1;c<=130;c++)
{
for(int d=1;d<=130;d++)
{
if(a+b+c+d==26 && a*b*c*d==880 && a<b && b<c && c<d)
{
cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
}
}
}
}
}
}
1252
#include<iostream>
using namespace std;
int m,n,a[810],c=0;
int main()
{
cin>>m>>n;
int x;
for(int i=0;i<=m;i++)
{
for(int j=0;j<=n;j++)
{
x=3*i+5*j;
if(x!=0)
{
a[x]++;
if(a[x]==1)c++;
}
}
}
for(int i=1;i<=800;i++)if(a[i]!=0)cout<<i<<" ";
cout<<endl;
cout<<c;
}
1253
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d,t;
for(int i=1000;i<=9999;i++){
a = i/1000;//千位
b = i%1000/100;//百位
c = i%100/10;//十位
d = i%10; //个位
if(a==b && c==d){
int t=sqrt(i);
if(t*t == i){
cout<<i<<endl;
}
}
}
return 0;
}
1254
50
95959
1261
#include<iostream>
using namespace std;
int main()
{
int i=1;
for(i=1;i<=3000;i++)
{
if(i%5==1 && i%6==5 && i%7==4 && i%11==10) break;
}
cout<<i;
}
1264
#include<iostream>
using namespace std;
int main()
{
int a,b1,b2,b3,b4,c,v;
for(a=1000;a<=9999;a++)
{
b1=a/1000;
b2=a/100%10;
b3=a/10%10;
b4=a%10;
c=b4*1000+b3*100+b2*10+b1;
if(a*9==c)
{
cout<<a;
break;
}
}
}
1265
#include<iostream>
using namespace std;
int main()
{
int i=0;
for( ; ; ){
if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0) break;
else i++;
}
cout<<i;
}
1266
#include<iostream>
using namespace std;
int main()
{
int a;
for(int i=1000;i>=100;i--)
{
if(555555%i==0)
{
a=i;
break;
}
}
cout<<a;
}
1267
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"21";
}
1268
#include <bits/stdc++.h>
using namespace std;
string s1,s2;//高精度整数
int a[250],b[250],c[500];
int i,j,len;
int main(){
//用string读入高精度整数
cin>>s1>>s2;
//将两个高精度数逆序放入ab两个整数数组中
for(i=0;i<s1.size();i++){
a[i] = s1[s1.size()-1-i] - '0';
}
for(i=0;i<s2.size();i++){
b[i] = s2[s2.size()-1-i] - '0';
}
//从左往右,逐位求和,结果存入c数组
//加法的次数取决于两个整数中较长的字符串
len = s1.size();
if(s2.size()>s1.size()){
len = s2.size();
}
//逐位相加
for(i=0;i<len;i++){
c[i] = a[i]+b[i];
}
//逐位进位
for(i=0;i<len;i++){
if(c[i]>=10){
c[i+1] = c[i+1] + c[i] / 10;
c[i] = c[i] % 10;
}
}
//逆序输出结果
//两个不超过len位的整数做加法,结果可能是len+1位
if(c[len]!=0){
len++;
}
for(i=len-1;i>=0;i--){
cout<<c[i];
}
return 0;
}
1269
#include <bits/stdc++.h>
using namespace std;
/*
高精度减法:
第一步:判断正负,如果s1比s2对应的整数小,结果为负,交换s1 s2
第二步:将两个字符串,逆序存入2个整数输出测试
第三步:从左至右,逐位相减,不够借位
第四步:从右向左,逆序输出
*/
string s1,s2;
int a[250],b[250],c[250];
int i,len,p;
char f = '+';//表示结果的正负
int main(){
cin>>s1>>s2;
//长的一定大,一样长字典码大的一定大
//"123" "3" "123" "125"
if(s1.size() < s2.size() || (s1.size() == s2.size() && s1 < s2)){
f = '-';
swap(s1,s2);//直接交换两个变量的值
}
//cout<<f<<" "<<s1<<" "<<s2;
//将s1和s2逆序存入整数数组
for(i = 0;i < s1.size();i++){
//0 -> s1[s1.size()-1]
//1 -> s1[s1.size()-2]
a[i] = s1[s1.size() - i - 1] - '0';
}
for(i = 0;i < s2.size();i++){
b[i] = s2[s2.size() - i - 1] - '0';
}
//逐位相减
len = s1.size();
for(i = 0;i < len;i++){
//如果不够减,向右借1,当10用
if(a[i] < b[i]){
a[i + 1] = a[i + 1] - 1;
a[i] = a[i] + 10;
}
c[i] = a[i] - b[i];
}
//判断是否要输出负号
if(f == '-') cout<<f;
//从右向左逐位输出,从第一个遇到的非0元素开始输出
for(i = len - 1;i >= 0;i--){
if(c[i] != 0){
p = i;
break;
}
}
//逆序从第一个非0元素 输出每一位
for(i = p;i >= 0;i--){
cout<<c[i];
}
1271
#include<iostream>
using namespace std;
int a,b,i,n,t;
int main(){
//第1步
cin>>a>>b>>n;
cout<<a/b<<".";
//第2步
t=a%b;
for(int i=1;i<=n;i++){
t=t*10;
cout<<t/b;
t=t%b;
}
return 0;
}
1273
#include<bits/stdc++.h>
using namespace std;
bool ss(int a)//常规判断素数的自定义函数(为了方便枚举)
{
for(int i=2; i<a; i++)
if(a%i==0)return false;
return true;
}
int a,ct;
int main(){
cin>>a;
for(int i=2; i<=a; i++)
{
for(int k=i; k<=a; k++)
{
for(int j=k; j<=a; j++)
if(i+k+j==a&&ss(i)&&ss(k)&&ss(j))ct++;//判断和普通的猜想差不了多少
}
}
cout<<ct<<endl;//因为要问有多少个解,所以要枚举两次
for(int i=2; i<=a; i++)
{
for(int k=i; k<=a; k++)
{
for(int j=k; j<=a; j++)
if(i+k+j==a&&ss(i)&&ss(k)&&ss(j))cout<<a<<"="<<i<<"+"<<k<<"+"<<j<<"\n";//这里就不用解释了
}
}
return 0;
}
1282
#include <bits/stdc++.h>
using namespace std;
/*
dp[i][j]:代表有i个物品,背包容量为j时,能够存储的最大价值
对于第i个物品:
情况一:背包容量j<物品重量w[j],放不下,能够存放的价值dp[i-1][j]
情况二:背包容量j>=物品重量w[j],放得下
能够得到的最大价值 = max(dp[i-1][j],v[i]+dp[i-1][j-w[i]])
*/
int dp[110][20010];
int n,w[110],v[110],maxw,i,j;
int main(){
cin>>maxw>>n;
//读入每个物品的重量和价值
for(i = 1;i <= n;i++){
cin>>w[i]>>v[i];
}
//推导
//循环n个物品
for(i = 1;i <= n;i++){
//循环背包容量从1~maxw
for(j = 1;j <= maxw;j++){
//如果放不下:背包容量<物品重量
if(j < w[i]){
dp[i][j] = dp[i-1][j];
}else{
//放得下,就看放进来价值高,还是不放价值高
dp[i][j] = max(dp[i-1][j],v[i]+dp[i-1][j-w[i]]);
}
}
}
//输出n个物品,背包容量为maxw的情况下最大价值
cout<<dp[n][maxw];
}
1290
#include<bits/stdc++.h>
using namespace std;
string s;
int t = 1;//表示2的次方,默认是2的0次方
int r = 0;//表示2进制对应的10进制
int main() {
cin>>s;
//倒过来按权展开
for(int i = s.size() - 1;i >= 0;i--){
//s[i] - '0':获得s[i]这个字符对应的整数
r = r + (s[i] - '0') * t;
t = t * 2;
}
cout<<r;
return 0;
}
1292
#include<bits/stdc++.h>
using namespace std;
string s;
long long r = 0,t = 1;//t表示权重(16的次方)
int main() {
cin>>s;
//逆序循环字符串,从最低位开始计算
for(int i = s.size() - 1;i >= 0;i--){
//如果当前位是数字字符 0~9
if(isdigit(s[i])){
r = r + (s[i] - '0') * t;
}else{
//如果是字母 10~15
r = r + (s[i] - 55) * t;
}
//权重提升
t = t * 16;
}
cout<<r;
return 0;
}
1300
#include<iostream>
using namespace std;
int main()
{
int c;
cin>>c;
if(c>89) cout<<c*3;
else if(c>79)cout<<c*2;
else if(c>69)cout<<c;
else cout<<50;
}