图论作业
判断今天是今年的第几天:
#include<stdio.h>
bool Leap_year(int year)
{
if( year / 4 == 0 && year / 100 !=0 || year / 400 ==0)
{
return true;
}
else
{
return false;
}
}
int today( int year,int month,int day)
{
int i;
int sum=0;
for( i=1;i<month;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
if(Leap_year(year)&&i==2)
{
sum+=29;
}
if(!Leap_year(year)&&i==2)
{
sum+=28;
}
}
sum+=day;
return sum;
}
int main()
{
int a=today( 2018,1,3);
printf("今天是今年的第%d天\n",a);
int b=today( 2018,12,31);
printf("今天是今年的第%d天\n",b);
return 0;
}
//有一个二维数组,行列均为递增。
//现在需要输入一个数字,是否存在该数字?
//存在,打印或者返回其第一次出现的位置。
//{ 1,2,8,9,
// 2,4,9,12,
// 4,7,10,13,
// 6,8,11,15
// };
#include<stdio.h>
#define n 4
int Two(int (*arr)[n],int a)
{
int flag=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(arr[i][j]==a)
{
flag=1;
printf("YES\n");
printf("该数第一次出现的坐标为(%d,%d)\n",i,j);
return 1;
}
}
}
if(flag!=0)
{
printf("NO\n");
}
}
void Show(int *arr)
{
for (int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
printf("%4d",arr[i*n+j]);
}
printf("\n");
}
}
int main()
{
int arr[4][4]={ 1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
Show((int *)arr);
Two(arr,2);
return 0;
}
斐波那契(无递归)
#include<stdio.h>
void Fabonacio(int *arr,int len)
{ int n;
arr[0]=arr[1]=1;
//printf("%d%4d",arr[0],arr[1]);
for(n=2;n<40;n++)
{
arr[n]=arr[n-1]+arr[n-2];
//printf("%11d",arr[n]);
}
}
void Show(int *arr,int len)
{
for(int i = 0;i < len;i++)
{
printf("%11d ",*(arr+i));
}
printf("\n");
}
int main()
{
int arr[40] = {};
int len = sizeof(arr)/sizeof(arr[0]);
Fabonacio( arr,len);
Show(arr,len);
return 0;
}