洛谷试炼场---新手村
在线测评地址https://www.luogu.com.cn/training/mainpage
1.p1001 A+B Problem
难度:入门难度
考点:输入,输出 ,整数四则运算
适用:小学生
#include
int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);return 0;
}
2.p1421 小玉买文具
难度:入门难度
考点:输入,输出,整数的四则运算
适用:小学生
#include
int main(){
int a,b,c;
scanf("%d%d",&a,&b);
c=(a*10+b)/19;
printf("%d\n",c);
return 0;
}
3.p1425 小鱼的游泳时间 类似 P1421 小玉买文具
难度:入门难度
考点:输入,输出 ,整数四则运算,取整,取模
适用:小学生
#include
int main(){int a,b,c,d;int e,f,g,h,i;scanf("%d%d%d%d",&a,&b,&c,&d);e=a*60+b;f=c*60+d;g=f-e;h=g/60;i=g%60;printf("%d %d\n",h,i);return 0;
}
4.p1422 小玉家的电费
难度:入门难度
考点:输入,输出 ,浮点数计算,if else语句
适用:小学生
#include
int main(){int a;float b;scanf("%d",&a);if(a<=150)b=a*0.4463;else if(a>=151&&a<=400)b=150*0.4463+(a-150)*0.4663;else if(a>400)b=150*0.4463+(400-150)*0.4663+(a-400)*0.5663;printf("%.1f\n",b);return 0;
}
5.p1085 不高兴的津津
难度:入门难度
考点:输入,输出 ,整数四则运算,数组,找最大值
适用:小学生
技巧:大于等于8,痛苦指数为a+b,否者为0
#include
int main(){int a,b,c[8],i,max,k;for(i=1;i<=7;i++){scanf("%d%d",&a,&b);if(a+b>=8)c[i]=a+b;elsec[i]=0;}max=0;k=0;for(i=1;i<=7;i++)if(max
6.NOIP2004 提高组 复赛 save 津津的储蓄计划
1.题目对程序知识要求比较简单,主要考思考。
2.需要开sheng(剩),cun(存)两个变量对每个月的结余进行处理。
3.两个关键点,一是cun*1.2不合适,因cun是整数,不能与浮点直接相乘,可以采用cun/10*12。
4.二是,别忘了手中的钱还要加上12月剩的钱,即cun/10*12+sheng。
5.样例通过后,提交AC。
耗时:15分钟
难度:简单
附上AC代码,编译环境Dev-C++4.9.9.2
//2004 save
#include
int ys[13];
int main(){
int i;
int sheng,cun;
int flag;
for(i=1;i<=12;i++)
scanf("%d",&ys[i]);
sheng=0;
cun=0;
flag=0;
for(i=1;i<=12;i++){
sheng=sheng+300-ys[i];
if(sheng<0){
flag=1;
break;
}
if(sheng>=100){
cun=cun+(sheng/100)*100;
sheng%=100;
}
}
if(flag)
printf("%d\n",i*(-1));
else
printf("%d\n",cun/10*12+sheng);
}
7.//p1008 三连击
//难度:入门难度
//考点:输入,输出 ,整数四则运算,取整,取模
//适用:小学生
//小技巧:分离出每个数的个十百位,其中 1*2*3*4*5*6*7*8*9=362880 1+2+3+4+5+6+7+8+9=45能判定数字是否重复
//方法:枚举
#include
int main(){
int a,b,c;
int x[10];
int m,n,i;
for(a=123;a<=333;a++){
b=a*2;
c=a*3;
x[1]=a%10;
x[2]=a/10%10;
x[3]=a/100;
x[4]=b%10;
x[5]=b/10%10;
x[6]=b/100;
x[7]=c%10;
x[8]=c/10%10;
x[9]=c/100;
m=1;
n=0;
for(i=1;i<=9;i++)
m*=x[i];
for(i=1;i<=9;i++)
n+=x[i];
if(m==362880&&n==45)//1*2*3*4*5*6*7*8*9 1+2+3+4+5+6+7+8+9//笔误,写成3628880查了会
printf("%d %d %d\n",a,b,c);
}
}
p1008 三连击
难度:入门难度
考点:输入,输出 ,整数四则运算,深度优先算法
适用:小学生
#include
#include
int a[10];
int visited[10];
int n=9;
void dfs(int step){int b,c,d;int i;b=a[1]*100+a[2]*10+a[3];c=a[4]*100+a[5]*10+a[6];d=a[7]*100+a[8]*10+a[9];if(step==n+1){if(c==2*b&&d==3*b)printf("%d %d %d\n",b,c,d);return;}for(i=1;i<=9;i++)if(visited[i]==0){a[step]=i;visited[i]=1;dfs(step+1);visited[i]=0;}
}
int main(){memset(visited,0,sizeof(visited));dfs(1);return 0;
}
8.p1035 级数求和
难度:入门难度
考点:输入,输出 ,整数、浮点数运算,
适用:小学生
陷阱:此题写得不好,容易超时
感悟:测试 12时,已经反应很慢了,比较忐忑. 提交果然超时。本题的特点是容易测试,发现问题,就需要找出超时的问题,进行改进。
#include
int main(){int k;int i;double ans;scanf("%d",&k);ans=1;i=1;while(1){if(ans>k)break;i++;ans+=1.0/i;}printf("%d\n",i);return 0;
}
9.p1307 数字反转
难度:入门难度
考点:输入,输出 ,取整,取模,分离出个十百千万位数,数组
适用:小学生
陷阱:如9000,反转后是9,不容易想到。
#include
int main(){int n;int a[20];int top;int flag;int i,j;scanf("%d",&n);if(n==0){//n=0处理 printf("0\n");return 0;}if(n>0)//大于0 flag=1;else{//小于0 flag=-1;n*=-1;} top=-1;while(n){top++;a[top]=n%10;n/=10;}if(flag==-1)printf("-");j=0;while(a[j]==0&&j<=top)j++;for(i=j;i<=top;i++)printf("%d",a[i]);return 0;
}
//p1307 数字反转
//难度:入门难度
//考点:输入,输出 ,整数四则运算,取整,取模
//适用:小学生
#include
int main(){
int n;
int ans=0;
scanf("%d",&n);
if(n<0){
printf("-");
n=-n;
}
while(n){
ans*=10;
ans+=n%10;
n/=10;
}
printf("%d\n",ans);
return 0;
}
10.p1423 小玉在游泳
难度:入门难度
考点:输入,输出 ,浮点数计算
适用:小学生
#include
int main(){float x;int i;float step;float ans;scanf("%f",&x);i=1;step=2;ans=step;while(ans
11.p1424 小鱼的航程(改进版)
难度:入门难度
考点:输入,输出 ,取模
适用:小学生
陷阱:结束时间是n+x-1
#include
int main(){int x,n;int i;int ans;int end;scanf("%d%d",&x,&n);ans=0;end=n+x;for(i=x;i
12.p1980 计数问题
难度:入门难度
考点:输入,输出 ,取整,取模,分离出整数的个十百千万
适用:小学生
#include
int cal(int a,int x){int ans;ans=0;while(a){if(a%10==x)ans++;a/=10;}return ans;
}
int main(){int n,x;int i;int ans;scanf("%d%d",&n,&x);ans=0;for(i=1;i<=n;i++)ans+=cal(i,x);printf("%d\n",ans);return 0;
}
13.p1046 陶陶摘苹果
难度:入门难度
考点:输入,输出 ,整数四则运算,数组
适用:小学生
感悟:菜题
#include
int main(){int h[10+10];int i;int t;int count=0;for(i=0;i<10;i++)scanf("%d",&h[i]);scanf("%d",&t);for(i=0;i<10;i++)if(t+30>=h[i])count++;printf("%d\n",count);return 0;
}
14.p1047 校门外的树
难度:入门难度
考点:输入,输出 ,整数数组操作
适用:小学生
注意:过大的数组要开到main函数的外面
int a[10000+10];
#include
int main(){int L,m;int i,j,start,end;int remain;scanf("%d%d",&L,&m);for(i=0;i<=L;i++)a[i]=1;for(i=0;i
15.p1427 小鱼的数字游戏
难度:入门难度
考点:输入,输出 ,一维数组操作
适用:小学生
#include
int a[100+10];
int main(){int v;int count=0;int i;scanf("%d",&v);while(v){a[count]=v;count++;scanf("%d",&v);}printf("%d",a[count-1]);for(i=count-2;i>=0;i--)printf(" %d",a[i]);printf("\n");return 0;
}
16.p1428 小鱼比可爱
难度:入门难度
考点:输入,输出 ,一维数组操作
适用:小学生
#include
#include
int a[1000+10];
int b[1000+10];
int main(){
int n;
int i,j;
memset(b,0,sizeof(b));
scanf("%d",&n);
for(i=0;i
for(i=0;i
printf("%d",b[0]);
for(i=1;i
printf("\n");
return 0;
}
17.p1055 ISBN号码
难度:入门难度
考点:输入,输出 ,字符串,字符转数字,数字转字符
适用:小学生
注意:过大的数组要开到main函数的外面。
小技巧:要设置一个计数变量
陷阱:没注意%11,结果可能是0,1,2,3,4,5,6,7,8,9,10 10是两位数,题目太简单了,容易漏看:所得的余数即为识别码,如果余数为10,则识别码为大写字母X
#include
int main(){char s[20];int ans;scanf("%s",s);ans=(s[0]-&#39;0&#39;)*1+(s[2]-&#39;0&#39;)*2+(s[3]-&#39;0&#39;)*3+(s[4]-&#39;0&#39;)*4;ans+=(s[6]-&#39;0&#39;)*5+(s[7]-&#39;0&#39;)*6+(s[8]-&#39;0&#39;)*7+(s[9]-&#39;0&#39;)*8+(s[10]-&#39;0&#39;)*9;ans%=11;if(ans==10)if(s[12]==&#39;X&#39;)printf("Right\n");else{s[12]=&#39;X&#39;;printf("%s\n",s);}else if(ans==s[12]-&#39;0&#39;)printf("Right\n");else{s[12]=ans+&#39;0&#39;;printf("%s\n",s);}return 0;
}
18.p1200 你的飞碟在这儿
难度:入门难度
考点:输入,输出 ,字符串操作,字符转数字,取模
适用:小学生
#include
#include
int main(){char hui[10],dui[10];int h,d;int hlen,dlen;int i;scanf("%s%s",hui,dui);hlen=strlen(hui);dlen=strlen(dui);h=1;d=1;for(i=0;i
19.//p1308 统计单词数
//难度:普及-
//考点:输入,输出 ,含空格字符串读取
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//陷阱:题目比较刁钻,第二行提供的字符串,开始部分也可以是空格,真是难以想象啊,测试数据1,8就是。
#include
#include
#include
char s1[20];
char s2[1000000+10];
int main(){int count=0;char c;int i,j;int s1len,s2len;int flag;int num,k;scanf("%s",s1);//字符串s2读取,比较费力 while((c=getchar())!=EOF)if(c!=&#39;\r&#39;&&c!=&#39;\n&#39;)s2[count++]=c;while(!isalpha(s2[count-1]))count--;s2[count]=&#39;\0&#39;;s1len=strlen(s1);s2len=strlen(s2);//s1,s2字符串,转化成小写 for(i=0;i
}
20.//p1553 数字反转(升级版)
//难度:普及-
//考点:输入,输出 ,字符串处理,字符查找,字符串反转
//适用:小学生
//小技巧:输出%技巧 %%
//陷阱:陷阱,输出应该用字符串,若用整数,容易越界。
//附上该题测试点9奇葩的输入输出数据额:1390000.00000000 931.0
//附上该题测试点12奇葩的输入输出数据额:000000000/8213 0/3128
//感悟:升级版题目很难做,奇葩数据特别多。似乎不按常理出牌
#include
#include
char s[100],s2[100],s3[100],t[100];
void fun(char *a){int i,j,len,b;char t[100];len=strlen(a);if(len==1)return;strcpy(t,a);i=0;j=0;while(t[i]==&#39;0&#39;)i++;while(t[i]!=&#39;\0&#39;){a[j]=t[i];i++;j++;}a[j]=&#39;\0&#39;;len=strlen(a);if(len==0){a[0]=&#39;0&#39;;a[1]=&#39;\0&#39;;}
}
int main(){int len;int i,j,m;int flag;//整0.1/2%3int k;scanf("%s",s);len=strlen(s);flag=0;for(i=0;i
21.//p1598 垂直柱状图
//难度:普及-
//考点:输入,输出 ,字符串读取,字符转数字,数字转字符,矩阵读写
//适用:小学生
//陷阱:Dev-C++4.9.9.2竟无数组越界提醒 ,查了好半天
#include
#include
int a[100];//数组开的太小,越界,查了好半天a[50]
char b[100][100];//数组开的太小,越界,查了好半天b[50][50]
int main(){char c;int max,i,j;memset(a,0,sizeof(a));while((c=getchar())!=EOF){if(c>=&#39;A&#39;&&c<=&#39;Z&#39;)a[c-&#39;A&#39;]++;}max=0;for(i=0;i<26;i++)if(max}
22.p1914 小书童---密码
难度:入门难度
考点:输入,输出 ,字符串,字符处理,取模
适用:小学生
#include
#include
char s[1024];
int main(){int n;int i;int len;scanf("%d%s",&n,s);len=strlen(s);for(i=0;i
23.//p1028 数的计算
//难度:普及-
//考点:输入,输出 ,递归
//适用:小学生
//小技巧:先将各种情况打印出,之后注释,再进行各种可能结果统计。
//疑惑:测试n=1000,明显超时,但提交AC,很明显,数据弱
#include
//int a[1000];
//int pos;
long long count=0;
void fun(int n){int i,j,top;for(i=1;i<=n/2;i++){/*pos++;a[pos]=i;top=pos;printf(",");for(j=top;j>=0;j--)printf("%d",a[j]);*/count++;fun(i);//pos--;}
}int main(){int n;scanf("%d",&n);/*printf("%d",n);pos=0;a[pos]=n;*/count++;fun(n);printf("%lld\n",count);return 0;
}
24.//p1036 选数
//难度:普及-
//考点:输入,输出 ,递归,排列组合,质数的判定,深度优先遍历,阶乘计算
//适用:初中
//小技巧:深度优先遍历,数据有重复,别忘了/f(k) 阶乘
#include
#include
int a[30],b[30],vis[30];
int n,k;
int count=0;
int f(int n){//阶乘 if(n==1)return 1;return f(n-1)*n;
}
int isprime(int n){//0非质数,1质数 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void dfs(int step){int i,j,sum;if(step==k+1){sum=0;for(j=1;j<=k;j++)sum+=a[j];if(isprime(sum))count++; return ;}for(i=1;i<=n;i++)if(vis[i]==0){vis[i]=1;a[step]=b[i];dfs(step+1);vis[i]=0;}
}
int main(){int i;memset(vis,0,sizeof(vis));scanf("%d%d",&n,&k);for(i=1;i<=n;i++)scanf("%d",&b[i]);dfs(1);printf("%d\n",count/f(k));return 0;
}
25.//p1149 火柴棒等式
//难度:普及-
//考点:输入,输出 ,数组,取整,取模,将一个整数的个十百千万等位取出。
//适用:小学生
//小技巧:穷举法,做了个超时测试i<=10000,j<=10000,发现算出答案与i<=1000,j<=1000相一致,提交时采用1000
//猜测:数据都在1000以内,因24-4=20等于10个1
#include
int b[10]={6,2,5,5,4,5,6,3,7,6};//0-9火柴根数
int fun(int n){int sum=0;if(n==0)return b[0];while(n){sum+=b[n%10];n/=10;}return sum;
}
int main(){int i,j,n,m,count=0; scanf("%d",&n);for(i=0;i<=1000;i++)for(j=0;j<=1000;j++){m=fun(i)+fun(j)+fun(i+j)+4;if(m==n)count++;}printf("%d\n",count); return 0;
}
26.//p1217 回文质数
dfs深搜写法
AC代码如下:
#include
int a,b,num1,num2,num;
int d[10],c[10];
int isPrime(int x){int i;if(x<2)return 0;if(x==2)return 1;for(i=2;i*i<=x;i++)if(x%i==0)return 0;return 1;
}
void dfs(int step){int i;if(step==(num+1)/2+1){int j,sum=0;for(j=1;j<=(num+1)/2;j++){sum+=d[j]*c[j-1];if(j
int count(int x){int cnt=0;while(x)x/=10,cnt++;return cnt;
}
int main(){int i;scanf("%d%d",&a,&b);num1=count(a),num2=count(b);c[0]=1;for(i=1;i
2020年12月19日 20:35 重写,dfs深搜代码如上。
//难度:普及-
//考点:输入,输出 ,质数判定,回文数生成技巧
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//感悟:开始还没什么头绪,但接着题目往下看,题目还有详细的提示。
//思路:枚举题目范围内的所有回文数,判定质数进行存储,在题目给定的方位内进行查找
#include
int a[10000];//存储质数
int count=0;//质数个数
int isprime(int n){//质数返回1,非质数返回0 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void palindrome(){int d1,d2,d3,d4,d5,t;//1个数for(d1=1;d1<=9;d1+=2)if(isprime(d1))a[count++]=d1;//2个数for(d1=1;d1<=9;d1+=2){t=d1*10+d1;if(isprime(t))a[count++]=t;}//3个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++){t=d1*100+d2*10+d1;if(isprime(t))a[count++]=t;}//4个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++){t=d1*1000+d2*100+d2*10+d1;if(isprime(t))a[count++]=t;}//5个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++){t=d1*10000+d2*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//6个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++){t=d1*100000+d2*10000+d3*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//7个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++){t=d1*1000000+d2*100000+d3*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//8个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++){t=d1*10000000+d2*1000000+d3*100000+d4*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//9个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++)for(d5=0;d5<=9;d5++){t=d1*100000000+d2*10000000+d3*1000000+d4*100000+d5*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}
}
int main(){int a2,b;int i;palindrome();scanf("%d%d",&a2,&b);for(i=0;i
}
2017-7-24 6:56 重新修改 p1217 回文质数
27.//p1478 陶陶摘苹果(升级版)
//难度:普及-
//考点:输入,输出 ,数组,结构体,排序
//适用:小学生
//注意:存在力气用不完,苹果已摘完;存在力气不够用苹果已摘完。
//思路:找出能摘到的苹果,按消耗的力气由小到大排序。第一遍扫描,将能摘到的苹果存下来,采用结构体,数据比较清晰。
#include
struct node{int x;int y;
}p[5000+10],p_t;//苹果 int main(){int n,s;int i,j;int x,y;int a,b;int count=0;int num=0;scanf("%d%d",&n,&s);scanf("%d%d",&a,&b);for(i=0;i
}
28.//p1618 三连击(升级版)
//难度:普及-
//考点:输入,输出 ,整数四则运算,数组,递归,深度优先遍历。
//适用:小学生
//陷阱:编得高兴的时候,容易漏了 若无解,输出“No!!!”
#include
#include
int A,B,C;
int a[10],vis[10];
int count=0;
void dfs(int step){int i;int b1,b2,b3;if(step==10){b1=a[1]*100+a[2]*10+a[3];b2=a[4]*100+a[5]*10+a[6];b3=a[7]*100+a[8]*10+a[9];if(b1*B*C==b2*A*C&&b2*A*C==b3*A*B){count++;printf("%d %d %d\n",b1,b2,b3);}}for(i=1;i<=9;i++)if(vis[i]==0){vis[i]=1;a[step]=i;dfs(step+1);vis[i]=0;}
}
int main(){memset(vis,0,sizeof(vis));scanf("%d%d%d",&A,&B,&C);dfs(1);if(count==0)printf("No!!!\n");return 0;
}
29.//p1579 哥德巴赫猜想(升级版)
//难度:普及-
//考点:输入,输出 ,判断质数,数组
//适用:小学生
//思考:将2000以内的素数全部找出,三层循环,判断,输出符合条件的数据。
#include
int a[20000];
int count=0;
int isprime(int n){//0非质数 1质数 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void find(){int i;for(i=1;i<20000;i++)if(isprime(i))a[count++]=i;
}
int main(){int i,j,k;int n;int flag=0;find();scanf("%d",&n);for(i=0;i
30.//p2089 烤鸡
//难度:入门难度
//考点:输入,输出 ,暴力,或深度优先遍历
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//陷阱:没想到解的数量十分巨大,如何计算接的数量,(3333333333-1111111111)=2222222222还要研究
//思路:准备暴力破解,但for循环有10个,写得难受,采用dfs方式缩减代码。
//收获:成功的将多层for循环写成递归的形式,dfs搜索更上一层楼。
#include
int a[100000][20],b[20];//a[20][20]开得太小了,导致WA 1000也要WA于是开到100000
int count=0;
int n;
void dfs(int step){int i,j;int sum;if(step==11){sum=0;for(j=1;j<=10;j++) sum+=b[j];if(sum==n){for(j=1;j<=10;j++)a[count][j]=b[j];count++;}return;}for(i=1;i<=3;i++){b[step]=i;dfs(step+1);}
}
int main(){int i,j;scanf("%d",&n);if(n>30){printf("0\n");return 0;}dfs(1);printf("%d\n",count);for(i=0;i
31.//p1426 小鱼会有危险吗
//难度:入门难度
//考点:输入,输出 ,等比数列,浮点数运算
//适用:知识(高中生),编程(小学生)
//陷阱:测试点2挺奇葩的,3 4 y一开始就在猎人捕杀范围
//疑惑:时间足够长,小鱼有可能没进猎捕范围就停下了。应该要判断。 经过等比数列计算a1/1-q=350米,故不用判断。
#include
int main(){float s,x;float dis,sp;scanf("%f%f",&s,&x);dis=0;//第0秒if(dis>=s-x){//特列判断dis=7;//第一秒if(dis<=s+x)printf("y\n");elseprintf("n\n");return 0; } dis=sp=7;//第一秒 while(dis
}
32.//p1464 Function
//难度:普及-
//考点:输入,输出 ,整数四则运算,取整,取模
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//小技巧:要设置一个计数变量
//陷阱:输出格式w(1, 1, 1) = 2注意有4个空格。 此题陷阱多多
//思考:题目的输入数据挺吓人,采用long long,看完题目突然看到记忆化搜索,正好2017-3-17
//看到《挑战程序设计竞赛(第2版)》巫泽俊 里有介绍,那么编起程序是手到擒来。
//提交:没有经过优化竟然全报TLE,突然醒悟到记忆化搜索该怎么编。再次提交RE,明白数组开小了
//注意:输入负数要单独处理,题目没看仔细,负数,或是超大的数都单独处理即可。生手毕竟生手。
#include
#define n 30//改了mem[100][100][100]此处没改成30又折腾了一会
long long mem[30][30][30];//mem[30][30][30]太小了 ,后来一看,开得够大了
long long w(long long a,long long b,long long c){if(a<=0||b<=0||c<=0)return 1;if(a>20||b>20||c>20){if(mem[20][20][20]==0)mem[20][20][20]=w(20,20,20);return mem[20][20][20];}if(a}
int main(){long long a,b,c;for(a=0;a
}
33.配上该幅图,该题所要表达的意思就清楚了,不过纯粹由提供的数据想到该图对应的取数方法,还是很困难的。
//p1014 Cantor表
//难度:入门难度
//考点:输入,输出 ,找规律
//适用:小学生
//小技巧:同一对角线上,分子降序,分母升序 ,分子+分母=定值
//配上该幅图,该题所要表达的意思就清楚了,不过纯粹由提供的数据想到该图对应的取数方法,还是很困难的。
#include
int main(){int n,i;//n分子,i分母 int ascend;//分子升序1,降序0 scanf("%d",&n);i=1;ascend=0;while(n>i){n=n-i;i++;ascend=!ascend;}if(ascend==0){//降序n=i-n+1;//分子处理 }i=i-n+1;printf("%d/%d\n",n,i);return 0;
}
2017-3-19 上午10:20完结。
新手村通关。水平得以提升,掌握了多行字符串(包含空格)的处理,深度优先遍历(其中包括将多层循环写成递归形式),记忆搜索。