C/C++の宿題片付けます 128代目
at TECH
888: ◆/91kCCQXBo
09/07/10 11:50:27
3連続投球終わったか?
//>>863 >>848の先生は、なんで火曜から月曜が1日なんて常識はずれな。
enum Day {Sun,Mon,Tue,Wed,Thr,Fri,Sat}; // Sun=0
int day_load[7][7] = {{0,1,2,3,3,2,1},{1,0,1,2,3,3,2},{2,1,0,1,2,3,3},{3,2,1,0,1,2,3},{3,3,2,1,0,1,2},{2,3,3,2,1,0,1},{1,2,3,3,2,1,0}};
int table[]={0,1,2,3,3,2,1};
int day_distance(enum Day st, enum Day en){
 int work,a=st,b=en;
 switch(0) { /* ここには 1 から 4 の数字を入れる。どれでも同じ結果になる。 */
 case 1: /* compact cost > speed cost */
   work = st<en?en-st:st-en;
   return work<=3?work:7-work;
 case 2: /* compact cost < speed cost */
   return day_load[st][en];
 case 3: /* >>853 */
   return  (a > b) ?
       (  (a - b > 7 - (a - b)) ?
           (7 - (a - b)) :
           (a - b)
       ):( (b - a > 7 - (b - a)) ?
           (7 - (b - a)) :
           (b - a)
       );
 case 4: /* >>854 */
   work = st<en?en-st:st-en;
   return table[work%7];
 default: /* NORMAL */
   return (en-st+7)%7;
 }
}
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5079日前に更新/375 KB
担当:undef