求一个更简单的算法完成: 给一个String 赋值,依次赋值为:1 ,2,3,一季度,4,5,6,二季度,上半年,7,8,9,三季度,10,11,12,四季度,下半年,全年。
要求用尽量简单的循环。(最优者全分)

解决方案 »

  1.   


      和bdmh一样,没看懂这算法啊。
      

  2.   

    如果是sql 中 你就行转列 case when '' then '' ...
      

  3.   


     受到楼主如此批评,真是汗颜的很哪!为了补语文老师没教灵活应用之过,也为了防止我的语文老师找你干架,赶紧的贴段代码出来,以将功补老师之过,不知是否理解了你的意思,这里我权且用一个listbox代替给string赋值了。function GetHZ1(i:integer):string;
    var
      s:widestring;
    begin
      s:='一二三四';
      result:=s[i];
    end;function GetHZ2(i:integer):string;
    var
      s:widestring;
    begin
      s:='上下';
      result:=s[i];
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=1 to 12 do begin
        ListBox1.Items.Add(inttostr(i));
        if (i mod 3)=0 then
          ListBox1.Items.Add(GetHZ1(i div 3)+'季度');
        if (i mod 6)=0 then
          ListBox1.Items.Add(GetHZ2(i div 6)+'半年');
        if (i mod 12)=0 then
          ListBox1.Items.Add('全年');
      end;
    end;