L1-006 连续因子
#include <stdio.h>
#include <math.h>
int main()
{
int n,j;
int mi=0,mn=0;
scanf("%d",&n);
for(int i=2;i<=sqrt(n);i++)
{
int t=n;
for(j=i;j<=sqrt(n);j++)
{
if(t%j!=0)
break;
else
t/=j;
}
if(j-i>mn)
{
mi=i;
mn=j-i;
}
}
if(mn==0)
printf("1\n%d",n);
else
{
printf("%d\n",mn);
for(int i=0;i<mn-1;i++)
{
printf("%d*",mi);
mi++;
}
printf("%d",mi);
}
return 0;
}
L1-007 念数字
#include <stdio.h>
int main()
{
char p[][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char s[20];
scanf("%s",s);
for(int i=0;s[i]!='\0';i++)
{
if(s[i]=='-')
printf("fu ");
else
{printf("%s",p[s[i]-'0']);
if(s[i+1]!='\0')
{
printf(" ");
}
}
}
return 0;
}
L1-008 求整数段和
#include <stdio.h>
int main()
{
int n,m;
int k=0,sum=0;
scanf("%d %d",&n,&m);
for(int i=n;i<=m;i++)
{
printf("%5d",i);
k++;
sum+=i;
if(k%5==0)
printf("\n");
}
if(k%5!=0)
{
printf("\n");
}
printf("Sum = %d",sum);
return 0;
}
L1-009 N个数求和
#include <stdio.h>
#define ll long long
ll gcd(ll a,ll b)
{
return b==0?a:gcd(b,a%b);
}
int main() {
ll a,b,c,d,n;
ll i;
scanf("%lld",&n);
scanf("%lld/%lld",&a,&b);
n-=1;
if(n==0)
{
int k=gcd(a,b);
a = a / k;
b = b / k;
if(a && a/b == 0)
printf("%lld/%lld\n",a,b);
else if(a%b == 0)
printf("%lld\n",a/b);
else
printf("%lld %lld/%lld\n",a/b,a%b,b);
}
else
{while(n--)
{
scanf("%lld/%lld",&c,&d);
int lcp = b * d/ gcd(b,d);
a = a * lcp / b + c * lcp / d;
b = lcp;
int t0 = gcd(a,b);
a = a / t0;
b = b / t0;
}
if(a && a/b == 0)
printf("%lld/%lld\n",a,b);
else if(a%b == 0)
printf("%lld\n",a/b);
else
printf("%lld %lld/%lld\n",a/b,a%b,b);
}
return 0;
}
L1-010 比较大小
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
int t;
if(a>b)
{
t=a ; a=b ; b=t ;
}
if(a>c)
{
t=a ; a=c ; c=t ;
}
if(b>c)
{
t=b ; b=c ; c=t ;
}
printf("%d->%d->%d",a,b,c);
return 0;
}
Nowcoder_ONISINO的新回文串
#include <stdio.h>
int main() {
int t, i, j, k;
char ch;
scanf("%d", &t);
getchar();
for (i = 1; i <= t; i++) {
int ss[30] = {0}, zz[30] = {0};
while (scanf("%c", &ch) && ch != '\n')
if (ch >= 'a' && ch <= 'z') {
ss[ch - 'a' + 1]++;
if (ss[ch - 'a' + 1] % 2 == 0)
zz[ch - 'a' + 1] = 0;
else
zz[ch - 'a' + 1] = 1;
}
int sum = 0;
char stt = '0';
for (j = 1; j <= 26; j++) {
sum += zz[j];
if (sum >= 2)
break;
if (zz[j] == 1)
stt = 'a' + j - 1;
}
if (sum >= 2) {
printf("-1\n");
continue;
} else {
for (j = 1; j <= 26; j++) {
int cnt = ss[j] / 2;
if (cnt == 0)
continue;
else {
while (cnt > 0) {
printf("%c", 'a' + j - 1);
cnt--;
}
}
}
if (stt != '0')
printf("%c", stt);
for (j = 26; j >= 0; j--) {
int cnt = ss[j] / 2;
if (cnt == 0)
continue;
else {
while (cnt > 0) {
printf("%c", 'a' + j - 1);
cnt--;
}
}
}
}
printf("\n");
}
return 0;
}