matlab for循环应用(阶乘及the day of year)
一、N的阶乘
%脚本文件:test.m %N的阶乘 使用举例 % 定义变量 % ii ---循环变量,也就是循环次数 % N ---N的阶乘 % N_factorial --计算N的阶乘 clc;clear; %N的阶乘,以后封装为函数 N=5; N_factorial=1; for ii = 1:N N_factorial = N_factorial * ii; end fprintf(' %d的阶乘结果是:%f\n', ii,N_factorial);
二、the day of year
%脚本文件:date.m %目标: % 该程序特定日期在这一年的天数,用到了switch和for结构 % 版本记录: % 日期 编者 变化描述 % 2015-10-5 16:泡泡 源代码 % 定义变量: % day --输入某一天(dd) % month --输入某一月 (mm) % year --输入某一年(yyyy) % ii --循环索引 % day_of_year --这一年的天数 % leap_day --闰年额外的一天 clc;clear; %获取输入的年、月、日 disp('该程序计算输入具体的日期的天数'); str=datestr(now,'yyyy-mm-dd HH:MM:SS'); fprintf('系统当前时间:%s\n',str); year = input('请输入当前年:'); month= input('请输入当前月:'); day = input('请输入当前日:'); %判断当前年是否是闰年 % if mod(year,400) == 0 % leap_day = 1; % Years divisible by 400 are leap years % elseif mod(year,100) == 0 % leap_day = 0; % Other centuries are not leap years % elseif mod(year,4) == 0 % leap_day = 1; % Otherwise every 4th year is a leap year % else % leap_day = 0; % Other years are not leap years % end %方法二: leap_day = 0; if mod(year,100) == 0 if mod(year,400) == 0 leap_day = 1; end else if mod(year,4) == 0 leap_day = 1; end end %计算当前天在这一年的时间 day_of_year = day; %1.当前月份的天数 for ii = 1:month - 1 % 从一月到上个月总的天数 switch (ii) case {1,3,5,7,8,10,12}, day_of_year = day_of_year + 31; case {4,6,9,11}, day_of_year = day_of_year + 30; case 2, day_of_year = day_of_year + 28 + leap_day; end end %告诉用户 fprintf('时光荏苒,您输入的日期 %2d/%2d/%4d是这一年的第 [%d] 天.\n', ... month, day, year, day_of_year);
效果: