1-26 【0408】Odd Numbers (Part Two)
#include<stdio.h>// Code - Junhua
int main(){
int n;
if(scanf("%d",&n) != 1) return 1;
for(int i=1; i<=n*2-1; i+=2)
{
if(i>1) printf(",");
printf("%d",i);
}
return 0;
}
1-27 【0409】Integer Reversal
#include<stdio.h>// Code - Junhua
#include<string.h>
int main(void){
char n[20];
if(scanf("%s",n) != 1) return 1;
int len = strlen(n);
for(int i=len-1; i>=0; i--)
{
printf("%c",n[i]);
}
return 0;
}
1-28 【0410】Integer Reversal (Part Two)
#include<stdio.h>// Code - Junhua
int main(void){
long long n,m=0;
if(scanf("%lld",&n) != 1) return 1;
while(n != 0)
{
m = m*10+n%10;
n /= 10;
}
printf("%lld",2*m);
return 0;
}
1-29 【0411】Fibonacci Sequence
#include<stdio.h>// Code - Junhua
int main(void){
long long a=0,b=1;
long long n;
if(scanf("%lld",&n) != 1) return 1;
while(a<=n)
{
if(a!=0) printf(" ");
printf("%lld",a);
b = b+a;
a = b-a;
}
return 0;
}
1-30 【0412】Fibonacci Sequence (Part Two)
#include<stdio.h>// Code - Junhua
int main(void){
long long m,n;
long long a=0,b=1;
int button=0;
if(scanf("%lld %lld",&m,&n) != 2) return 1;
while(a<=n)
{
if(a>=m)
{
if(button == 1) printf(" ");
printf("%lld",a);
button = 1;
}
b = b+a;
a = b-a;
}
return 0;
}
1-31 【0413】Collatz Conjecture
#include<stdio.h>// Code - Junhua
int main(void){
long long n; // Using int may cause timeout
int i;
if(scanf("%lld",&n) != 1) return 1;
for(i=0; n!=1; i++)
{
if(n%2 == 0) n/=2;
else n = n*3+1;
}
printf("%d",i);
return 0;
}
1-32 【0414】Sum of Integers (Part Three)
#include<stdio.h>// Code - Junhua
int main(void){
long long m,n,result=0;
if(scanf("%lld %lld",&m,&n) != 2) return 1;
for(int i=m; i<=n; i++)
result += i;
printf("%lld",result);
return 0;
}
1-33 【0415】Factorial (Part Three)
#include<stdio.h>// Code - Junhua
int main(void){
int m,n;
long long result=1;
if(scanf("%d %d",&m,&n)!=2) return 1;
for(int i=1; i<=n; i++)
{
result *= i;
if(i>=m) printf("%d! = %lld\n",i,result);
}
return 0;
}
1-34 【0416】Sum of Factorials
#include<stdio.h>// Code - Junhua
int main(void){
int n;
if(scanf("%d",&n)!=1) return 1;
long long N=1,sum=0;
for(int i=1; i<=n; i++)
{
N *= i;
sum += N;
}
printf("%lld",sum);
return 0;
}
1-35 【0417】Fibonacci Sequence
#include<stdio.h>// Code - Junhua
int main(void){
int n;
long long a=0,b=1;
if(scanf("%d",&n) != 1) return 1;
for(int i=1; i<=n; i++)
{
if(i>1) printf(" ");
printf("%lld",a);
b = b+a;
a = b-a;
}
return 0;
}
1-36 【0418】Fibonacci Sequence (Part Four)
#include<stdio.h>// Code - Junhua
int main(void){
int m,n;
long long a=0,b=1;
if(scanf("%d %d",&m,&n) != 2) return 1;
for(int i=1; i<=n; i++)
{
if(i>=m)
{
printf("%lld",a);
if(i!=n) printf("\n");
}
b = b+a;
a = b-a;
}
return 0;
}
1-37 【0501】Swap Two Numbers
#include<stdio.h>// Code - Junhua
int main(void){
int m,n;
if(scanf("%d %d",&m,&n) != 2) return 1;
int big = (m>n) ? m:n;
int small = (m<n) ? m:n;
printf("%d - %d = %d",big,small,big-small);
return 0;
}
1-38 【0502】Distance Between Two Points
#include<stdio.h>// Code - Junhua
#include<math.h>
struct P {double x,y; }; // Semicolon after braces.
int main(void){
struct P p1,p2;
if(scanf("%lf,%lf\n%lf,%lf",&p1.x,&p1.y,&p2.x,&p2.y) != 4) return 1;
double distance = sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
printf("%.6f",distance);
return 0;
}
1-39 【0503】Area of Triangle
#include<stdio.h>// Code - Junhua
#include<math.h>
struct P {double x,y; };
int main(void){
struct P p1,p2,p3;
if(scanf("%lf,%lf\n%lf,%lf\n%lf,%lf",&p1.x,&p1.y,&p2.x,&p2.y,&p3.x,&p3.y) != 6) return 1;
double l12 = sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
double l13 = sqrt((p1.x-p3.x)*(p1.x-p3.x)+(p1.y-p3.y)*(p1.y-p3.y));
double l23 = sqrt((p2.x-p3.x)*(p2.x-p3.x)+(p2.y-p3.y)*(p2.y-p3.y));
double s = (l12+l13+l23)/2;
double area = sqrt(s*(s-l12)*(s-l13)*(s-l23));
printf("%.6f",area);
return 0;
}
1-40 【0504】Circumference and Area of Circle
#include<stdio.h>// Code - Junhua
#define PI 3.141592653589793
int main(void){
double r;
if(scanf("%lf",&r) != 1) printf("data error");
printf("%lf\n%lf",2*PI*r,PI*r*r);
return 0;
}
1-41 【0505】Volume of Sphere
#include<stdio.h>// Code - Junhua
#define PI 3.141592653589793
int main(void){
double r;
if(scanf("%lf",&r) != 1) printf("d error");
printf("%.6f",PI*r*r*r*4/3);
return 0;
}
1-42 【0506】Disk Capacity
#include<stdio.h>// Code - Junhua
int main(void){
float size;
if(scanf("%f",&size) != 1) return 1;
printf("%.3f",size*1000*1000*1000/1024/1024/1024);
return 0;
}
1-43 【0507】Screen Parameters
#include<stdio.h>// Code - Junhua
#include<math.h>
int main(void){
double size, width, height, ppi, x, y, pd;
char xx;
if(scanf("%lf\n%lf%c%lf",&size,&width,&xx,&height) != 4) printf("001");
ppi = sqrt(width*width+height*height)/size;
x = width/ppi*2.54;
y = height/ppi*2.54;
pd = x/width*10;
printf("%.1f\n%.1f\n%.1f\n%.3f",ppi,x,y,pd);
return 0;
}
1-44 【0508】Personal Income Tax
#include<stdio.h>// Loop solution. Junhua
int main(){
float n,revenue=0;
if(scanf("%f",&n) != 1) return 1;
// Define thresholds for each income bracket
int money[5] = {1600,2100,3600,6600,11600};
// Define corresponding tax rates
float ratio[5] = {0.05,0.1,0.15,0.2,0.3};
// Calculate from the highest income bracket downwards (reverse loop)
for(int i=4; i>=0; i--)
{
if(n>money[i]) // If current income exceeds a threshold
{
// Calculate tax on the excess: (current income - threshold) * corresponding tax rate
revenue+=(n-money[i])*ratio[i];
// Update income to threshold for next calculation
n=money[i];
}
}
printf("%.2f",revenue);
return 0;
}
1-45 【0509】Personal Income Tax (Part Two)
#include<stdio.h>// Empty loop replaces if-elseif structure Junhua
int main(void){
double n,m=0;
double ratio[5] = {0.05,0.1,0.15,0.2,0.3}; // Using float here may cause precision issues for maximum value.
int money[5] = {1600,2100,3600,6600,11600}, revenue[5] ={0,25,175,625,1625};
if(scanf("%lf",&n) != 1) return 1;
int i;
for(i=4; n<revenue[i]; i--) {} // Empty loop, only used to find satisfying i
m=(n-revenue[i])/ratio[i]+money[i];
printf("%.2f",m);
return 0;
}
#include<stdio.h>// Standard if-elseif structure Junhua
int main(){
double n,m=0;
scanf("%lf",&n);
if(n<=25) m=n/0.05;
else if(n<=175) m=(n-25)/0.1+500;
else if(n<=625) m=(n-175)/0.15+2000;
else if(n<=1625) m=(n-625)/0.2+5000;
else m=(n-1625)/0.3+10000;
printf("%.2f",m+1600);
return 0;
}
1-46 【0510】Multiplication Table
#include<stdio.h>// Code - Junhua
int main(void){
int n;
if(scanf("%d",&n) != 1) return 1;
for(int a=1; a<=n; a++)
{
for(int b=1; b<=n; b++)
{
if(b != 1) printf("\t");
printf("%dX%d=%d",b,a,a*b);
}
printf("\n");
}
return 0;
}
1-47 【0511】Multiplication Table (Part Two)
#include<stdio.h>// Code - Junhua
int main(void){
int n;
if(scanf("%d",&n) != 1) return 1;
for(int a=1; a<=n; a++)
{
for(int b=1; b<=a; b++)
{
printf("%dX%d=%d",b,a,a*b);
printf("\t");
}
printf("\n");
}
return 0;
}
1-48 【0513】Series Summation
#include<stdio.h>// Code - Junhua
int main(void){
int n;
double s=0;
if(scanf("%d",&n) != 1) return 1;
for(int i=1; i<=n; i++) {s += (1.0/i);} // At least one of the numerator or denominator must be a floating point number.
printf("%.15f",s);
return 0;
}
1-49 【0601】Narcissistic Numbers
#include<stdio.h>// Code - Junhua
int main(void){
for(int i=1; i<=9; i++)
{
for(int j=0; j<=9; j++)
{
for(int k=0; k<=9; k++)
{
int n= 100*i+10*j+k;
if(i*i*i+j*j*j+k*k*k == n) printf("%d\n",n);
}
}
}
return 0;
}
1-50 【0602】Number of Digits in Integer
#include<stdio.h>// Code - Junhua
int main(void){
int n,i;
if(scanf("%d",&n) != 1) return 1;
for(i=0; n!=0; i++) {n /= 10;}
printf("%d",i);
return 0;
}