第二章思考操作题

1.利用wx:if及wx:for数据绑定来实现输出乘法表口诀表的编程。

Page({
  data: {
    multiTable: []
  },
  onLoad: function () {
    let multiTable = [];
    for (let i = 1; i <= 9; i++) {
      let row = [];
      for (let j = 1; j <= i; j++) {
        row.push(`${j}x${i}=${i * j}`);
      }
      multiTable.push(row);
    }
    this.setData({
      multiTable: multiTable
    });
  }
});
{
  "navigationBarTitleText": "乘法口诀表" 
}

<view class="container">
  <view style='font-size:8px' wx:for="{{multiTable}}" wx:key="{{index}}">
    <view style='display:inline-block;width:35px;font-size:8px' wx:for="{{item}}" wx:key="{{index}}">
      <text>{{item}} </text>
    </view>
    <text wx:if="{{index != 8}}"> | </text>
  </view>
</view>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
}
 
.container text {
  margin: 5px;
}

2.编写程序,在Console控制台输出水仙花(水仙花数是指一个3位数的各位上的数字的3次幂之和等于它本身。)

Page({
  data: {
    narcissisticNumbers: []
  },
  onLoad: function () {
    const narcissisticNumbers = this.findNarcissisticNumbers();
    this.setData({
      narcissisticNumbers: narcissisticNumbers
    });
  },
  isNarcissisticNumber: function (num) {
    const strNum = num.toString();
    const digits = strNum.length;
    let sum = 0;
  
    for (let i = 0; i < digits; i++) {
      sum += Math.pow(parseInt(strNum[i]), digits);
    }
    return sum === num;
  },
  findNarcissisticNumbers: function () {
    const narcissisticNumbers = [];
  
    for (let i = 100; i < 1000; i++) {
      if (this.isNarcissisticNumber(i)) {
        narcissisticNumbers.push(i);
      }
    }
    return narcissisticNumbers;
  }
});
{
  "navigationBarTitleText": "水仙花数"
}
<view class="container">
  <view class="row">水仙花数共有:
    <view wx:for="{{narcissisticNumbers}}" wx:key="{{index}}">
      <text>{{item}} </text>
    </view>
  </view>
</view>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.row {
  display: flex;
  flex-direction: row;
}
.container text {
  margin: 5px;
}

3.编写程序,在页面中输出水仙花数。

Page({
  data: {
    narcissisticNumbers: []
  },
  onLoad: function () {
    const narcissisticNumbers = this.findNarcissisticNumbers();
    this.setData({
      narcissisticNumbers: narcissisticNumbers
    });
  },
  isNarcissisticNumber: function (num) {
    const strNum = num.toString();
    const digits = strNum.length;
    let sum = 0;
  
    for (let i = 0; i < digits; i++) {
      sum += Math.pow(parseInt(strNum[i]), digits);
    }
    return sum === num;
  },
  findNarcissisticNumbers: function () {
    const narcissisticNumbers = [];
  
    for (let i = 100; i < 1000; i++) {
      if (this.isNarcissisticNumber(i)) {
        narcissisticNumbers.push(i);
      }
    }
    return narcissisticNumbers;
  }
});
{
  "navigationBarTitleText": "水仙花数"
}
<view class="container">
  <view class="row">水仙花数共有:
    <view wx:for="{{narcissisticNumbers}}" wx:key="{{index}}">
      <text>{{item}} </text>
    </view>
  </view>
</view>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.row {
  display: flex;
  flex-direction: row;
}
.container text {
  margin: 5px;
}

4.编写程序,在页面中输出菱形图案。

Page({
  data: {
    diamondLines: []
  },
  onLoad: function () {
    const diamondLines = this.generateDiamond(5);
    this.setData({
      diamondLines: diamondLines
    });
  },
  generateDiamond: function (height) {
    const lines = [];
    for (let i = 1; i <= height; i++) {
      let line = '';
      for (let j = 1; j <= height - i; j++) {
        line += ' ';
      }
      for (let k = 1; k <= 2 * i - 1; k++) {
        line += '*';
      }
      lines.push(line);
    }
    for (let i = height - 1; i >= 1; i--) {
      let line = '';
      for (let j = 1; j <= height - i; j++) {
        line += ' ';
      }
      for (let k = 1; k <= 2 * i - 1; k++) {
        line += '*';
      }
      lines.push(line);
    }
    return lines;
  }
});
{
  "navigationBarTitleText": "菱形"
}
<view class="container">
  <view class="diamond">
    <view wx:for="{{diamondLines}}" wx:key="{{index}}">
      <text>{{item}} </text>
    </view>
  </view>
</view>
.container {
  display: flex;
  vertical-align: middle;
  text-align: center;
}
.diamond {
  margin-top: 100px;
}
.container text {
  margin: 5px;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值