1002 A+B Polynomials
利用数组存放,下标表示指数,值表示系数。
认真看题!刚开始以为每行开始的k表示最高次数
坑:保留一位小数:.1f
#include<stdio.h>
int main() {
float c[1001] = {0};
int exp;
float coe;
int m;
scanf("%d",&m);
for(int i = 0; i <= m;i++) {
scanf("%d%f",&exp,&coe);
c[exp] = coe;
}
scanf("%d",&m);
for(int i = 0; i <= m;i++) {
scanf("%d%f",&exp,&coe);
c[exp] += coe;
}
int count = 0;
for(int i = 0; i < 1001;i++) {
if(c[i] != 0) {
count++;
}
}
printf("%d",count);
for(int i = 1000; i >= 0; i--) {
if(c[i] != 0) {
printf(" %d %.1f",i,c[i]);
}
}
printf("\n");
return 0;
}
1005 spell it right
数字太大,unsigned long long也不行,只能通过数组读,然后依次相加,再进行输出
(每次看到C语言好多好多行代码,C++几行搞定就
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void intoeng(char i) {
switch(i){
case '0':printf("zero");break;
case '1':printf("one");break;
case '2':printf("two");break;
case '3':printf("three");break;
case '4':printf("four");break;
case '5':printf("five");break;
case '6':printf("six");break;
case '7':printf("seven");break;
case '8':printf("eight");break;
case '9':printf("nine");break;
}
}
int main() {
char n[1000];
scanf("%s",n);
int sum = 0;
for(int i = 0 ; i < strlen(n); i++) {
sum += n[i] - '0';
}
sprintf(n,"%d",sum);
intoeng(n[0]);
for(int i = 1; n[i] != '\0';i++) {
printf(" ");
intoeng(n[i]);
}
printf("\n");
return 0;
}