问题标题: 1799 等腰三角形与1250 三倍的糖果数

1
0

1
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

1799题主要思路:

  m=2*n-1;
    for (int i=1;i<=n;i++)
    {
        for (int j=0;j<s;j++)
            cout<<" ";
        for (int k=1;k<=m;k++)
            cout<<"*";
        m-=2;
        s++;
        cout<<endl;
    }

奇数为2n-1,m就是2n-1,每次输出前先输出s个空格,在输出m个*,每次循环时m减一次2,s要加一次1,。

 

 

1250

  do 
    {
        n++;
        cin>>a[n];
    }
    while (a[n]!=0);
    for (int i=1;i<n-1;i++)
    {
        for (int j=i+1;j<n;j++)
        {
            if (a[i]*3==a[j]) count++;
        }
    } 
    cout<<count;
    return 0;

输入用do-while,输入多少个不一定,后头用双重循环ij,判断a[i]*3==a[j] (j>i) ,避免重复。

最后输出条件总数。

栾峻岩在2018-01-14 17:50:02追加了内容

如果下次再问问题,可以@某人。

2
宋婉婷
宋婉婷
中级守护
中级守护

我用了1个while循环,里面有3个for循环

while循环里面第一个循环用来数左边空格:for(……) cout << "  " ;

第二个循环用来数星号:for(……) cout << " * " ;

第三个循环用来数右边空格,和第一个循环一样。

(我就是这么作的,AC,没超时)

宋婉婷在2018-01-14 16:35:36追加了内容

1799哈

宋婉婷在2018-01-14 17:03:13追加了内容

先用while循环输入,并统计有多少数,设有k个数。

然后双重for循环:i=0;i<k;i++,j=i,j<k;j++

                            当a[i]*3==a[j]或者a[j]*3==a[i]时,计数器s++。

最后输出s即可

宋婉婷在2018-01-14 17:03:39追加了内容

这是1250

0
李宗霖
李宗霖
中级守护
中级守护

三倍的糖果数:可以用do-while来写输入,用两个for循环来判断,累加后再输出

1799嘛,我去想想哈

0
我要回答