include<stdio.h>
int main()
{
int n,r,i=0,j=0;
char arr[100];
while(~scanf("%d %d",&n,&r))
{
if(n<0)
{
printf("-");
n=n-2*n;
}
while(n!=0)
{
++i;
arr[i]=n%r;
n/=r;
}
for(j=i;j>0;j--)
{
if(arr[j]>=10&&arr[j]<=16)
{
if(j!=1)
{
printf("%c",arr[j]+55);
}
else
{
printf("%c\n",arr[j]+55);
}
i=0;
}
else
{
if(j!=1)
{
printf("%d",arr[j]);
}
else
{
printf("%d\n",arr[j]);
}
i=0;
}
}
}
return 0;
}
//第一次做进制问题,也不会写,后面学长讲解了一下,然后就学会了
//讲一下思路:
//1.考虑这个数是正数还是负数. 这个进制是否大于10小于16.(因为大于10要变字母所以考虑)
//2.类比十进制转二进制的思路去推理整个进制的方法套路.
//3.输出时考虑第一步就好.
include<stdio.h>
int main()
{
int x,y,i,j;
scanf("%d %d",&x,&y);
while(x!=0||y!=0)
{
int flag=0;
for(i=x;i<=y;i++)
{
int sum=i*i+i+41;
for(j=2;j<sum;j++)
{
if(sum%j==0)
{
flag=1;
break;
}
else continue;
}
}
if(flag==0)
{
printf("OK\n");
}
else
{
printf("Sorry\n");
}
scanf("%d %d",&x,&y);
}
return 0;
}
//打印yes 或者 no 这种题目 标记的flag 方法特别好用大家学习一下经验.
考过了,不写了.详细看acm第一周训练题目.
include<stdio.h>
include<math.h>
int main()
{
int n,i,j;
scanf("%d",&n);
int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int a,b,c,d,e;
long long sum=0,day=0;
while(n>0)
{
sum=0;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
//算出总天数
if(a==d)
{
day=e-b;
goto again;
}
for(i=a;i<d;i++)
{
if(i==a)
{
day=arr[i]-b;
}
else
day=day+arr[i];
}
if(i==d)
{
day=day+e;
}
again:
sum=pow(2,day)*c;
printf("%lld\n",sum);
n--;
}
return 0;
}
//这个题其实不难,关键在于求出天数,所以就ac啦
基础冒泡排序.不写了.
include<stdio.h>
include<math.h>
void bubll_sort(int arr[],int n)
{
int i,j,tmp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(abs(arr[j])<abs(arr[j+1]))
{
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
int main()
{
int n,i;
int arr[110];
scanf("%d",&n);
while(n!=0)
{
for(i=0;i<n;i++) scanf("%d",&arr[i]);
bubll_sort(arr,n);
for(i=0;i<n;i++) printf("%d ",arr[i]);
printf("\n");
scanf("%d",&n);
}
return 0;
}
//冒泡加abs的运用,积累啦
include<stdio.h>
include <string.h>
int main()
{
int i,j,n;
scanf("%d",&n);
char arr[30][50], temp[50];
for(i=0; i<n;i++) scanf("%s",arr[i]);
for(i=0; i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(strcmp(arr[i],arr[j])>0)
{
strcpy(temp,arr[i]);
strcpy(arr[i],arr[j]);
strcpy(arr[j],temp);
}
}
for(i=0;i<n;++i) printf("%s ",arr[i]);
return 0;
}
//排序全家桶,基本会排序的冒泡就所有都会了,没啥特别大的难度.
原题不写了.看第一周训练题目.
include<stdio.h>
include<string.h>
int main()
{
int len,i,j;
char arr[10000];
gets(arr);
len=strlen(arr);
for(i=2;i<len;i++)//字符串的长度比如33 表示两位 444 表示3位
{
for(j=0;j<len;j++)
{
int l=j,r=i+j-1,flag=0;
while(l<=r)
{
if(arr[r]!=arr[l])
{
flag=1; break;
}
else
{
l++;
r--;
}
}
if(flag==0)
{
for(int k=j;k<=i+j-1;k++)
{
printf("%c",arr[k]);
}
printf("\n");
}
}
}
return 0;
}
//第一次写不会,后面问学长,在讲解下学会了这个题目,也很巧妙.
//这个还是flag标记的方法.雀氏好用.
include<stdio.h>
include<math.h>
int main()
{
int m,n,arr[10000],i,j;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
int min=10000000;
for(i=0;i<n;i++) scanf("%d",&arr[i]);
for(i=0;i<n;i++)
{
int count=0;
for(j=0;j<n;j++)
{
count+=abs(arr[i]-arr[j]);
}
if(min>count)
{
min=count;
}
}
printf("%d\n",min);
}
return 0;
}
//这个题目用到的就是遍历的方法,寻找最最最小的一种情况对不?.
include<stdio.h>
include<math.h>
include<string.h>
double sum(double x)
{
return (x*x*x*x*x)-15*(x*x*x*x)+ 85*(x*x*x)- 225*(x*x)+ 274*x-121;
}
int main()
{
double l=1.5,r=2.4,n,mid;
while(fabs(r-l)>0.000000001)
{
mid=(l+r)/2;
n=sum(mid);
if(n>0)
{
l=mid;
}
else if(n<0)
{
r=mid;
}
else
{
break;
}
}
printf("%.6lf",mid);
return 0;
}
//学了一下学长的思路会了浮点型的二分法
//后面又跟着acwing的y总学了一些基础算法,哦哦发先,这不就是普普通通的模板么???
结束
想给自己的建议:
1.先学习算法-------->先学acwing的y总的课,把算法基础给学完.
2.学习完算法才能更高效的刷题,目前学完算法就是用x—mind做思维导图+重复敲代码的过程
不断地熟悉这些模板到时候才会变厉害.
3.还有就是心态吧,都18了还emo呢,有困难是正常的事情,多问,多学,多积累,多敲,做和做到是不一样的,希望自己严格要求自己吧.
2022.11.16.