evilknight 发表于 2009-8-27 22:15:15

算法入门题-8月26日

第一题:
分組報告
内容 : 简体中文
電腦課要同學分組做期末報告,分組的方式為依座號順序,每 3 個人一組。如:1, 2, 3 為
第一組,4, 5, 6 為第二組….以此類推。輸入同學的座號,請判斷他在哪一組。
输入说明 :
輸入只有一行,含有一個正整數 n,代表同學的座號。
输出说明 :
輸出該同學的組別。
范例输入 :
7
范例输出 :
3
提示 :
你能只用算術運算子,而不用 if 解出這題嗎?

第二题:
题目类型 字符串处理 描述 手机的键盘是这样的:
1 2 abc 3 def
4 ghi 5 jkl 6 mno
7 pqrs 8 tuv 9 wxyz
* 0 #
要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。 输入格式 一行。一个句子,只包含英文小写字母和空格,且不超过200个字符。 输出格式 一行。一个整数,表示按键盘的总次数。
Sample input
i have a dream

sample output
23

evilknight 发表于 2009-8-28 00:29:47

第一題源代碼:
#include <stdio.h>

int main(void)
{
    int n;
    while(scanf("%d", &n) > 0)
      printf("%d\n", (n+2)/3);
    return 0;
}
第二題源代碼:
#include <stdio.h>
#include <stdlib.h>
#define MAX 200

char array = { 1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,4,
                   1,2,3,
                   1,2,3,4};

int main(int argc, char **argv)
{
    char s;
    int i = 0, count = 0;
    while(gets(s))
    {
      i = count = 0;
      while(s)
      {
            if (s == ' ')
                ++count;
            else
                count += array-'a'];
            ++i;
      }
      printf("%d\n", count);
    }
    return 0;
}
所有代碼都是經過測試AC的!

[ 本帖最后由 evilknight 于 2009-8-28 22:48 编辑 ]

wmp1014 发表于 2009-8-28 21:10:59

我做的第一题的代码:
#include <stdio.h>
#include <stdlib.h>



void main()
{
       
    int k;
        printf("Input!");
        scanf("%d",&k);
        printf("%d\n",k%3?(k/3+1):(k/3));
}
第二题:
#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
#include <string.h>

int main()
{
int array={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
int count=0;
char ch;

while (cin>>ch)
{
          
          for (int i=0;ch != 0;i++)
          {
                  if(ch>='A'&&ch<='z')
                  count+=array-'a'];
       }
          cout<<count<<endl;
}

       

return 0;
}

evilknight 发表于 2009-8-28 21:37:37

:handshake
继续努力!写得不错!
有些不用的头件就不用包含进来了!
我觉得如果int array={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
写成
char array = { 1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,
                   1,2,3,4,
                   1,2,3,
                   1,2,3,4};
写成这样,看起来会舒服一些!

超然 发表于 2009-8-28 22:50:54

我来测试下,中括号【】【】【】[][]【】【】【】

超然 发表于 2009-8-28 22:51:46

测试:

int main(int argc, char* argv[])
{
    int i_input_num;
    cout<<"请输入一个整数:"<<endl;
    cin>>i_input_num;
    cout<<"您输入的是:"<<i_input_num<<endl;
    int a = 0;
    int b = 0;

        return 0;
}

evilknight 发表于 2009-8-28 22:56:45

/:L .......无语...
页: [1]
查看完整版本: 算法入门题-8月26日